循环浏览不一致列表的字典

2024-07-01 07:12:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在解析xml并将其转换为字典。 在我的字典旁边看起来

'directories': {'dirname': 'D:\\directory\\subdir'},

或者

'directories': {   'dirname': [   'D:\\directory1\\subdir1',
                                  'D:\\directory2\\subdir2']},

如何循环阅读这本词典。 目前我正在做这样的工作,只有当它有多个元素很好。我应该通过循环检查dirname是元素列表还是仅仅是元素?或者有什么办法可以达到这个目的

rules = []
for v in args["directories"]["dirname"]:
    rules.append(os.path.join(v, "*", "*"))

输出: 对于输入'directories': { 'dirname': [ 'D:\\directory1\\subdir1', 'D:\\directory2\\subdir2']},

  rules[] = ['D:\\directory1\\subdir1\\*\\*', 'D:\\directory1\\subdir1\\*\\*']

对于输入'directories': {'dirname': 'D:\\directory\\subdir'},

['D\\*\\*', ':\\*\\*', '\\*\\*', 'd\\*\\*', 'i\\*\\*', 'r\\*\\*', 'e\\*\\*', 'c\\*\\*', 't\\*\\*', 'o\\*\\*', 'r\\*\\*', 'y\\*\\*', '\\*\\*', 's\\*\\*', 'u\\*\\*', 'b\\*\\*', 'd\\*\\*', 'i\\*\\*', 'r\\*\\*']

请把我看作是python的新手


Tags: 元素列表字典xmldirectoryrulesdirname办法
1条回答
网友
1楼 · 发布于 2024-07-01 07:12:23

您可以检查typeargs["directories"]["dirname"]并相应地处理:

rules = []
dirnames = args["directories"]["dirname"]
if isinstance(dirnames, basestring):
    rules.append(os.path.join(dirnames, "*", "*"))
elif isinstance(dirnames, list):
    for v in dirnames:
        rules.append(os.path.join(v, "*", "*"))

相关问题 更多 >

    热门问题