小编Ale*_* Y.的帖子

如何在字典中循环使用超过3个字典的子级别

我试图循环一个字典,其中一些键有其他字典作为值,其中一些值是它作为值的字典的键.我正在使用pyyaml解析超过5000行的YAML文件.当我加载它时,它会创建文件中所有内容的字典,并将所有子级别分解为自己的字典.

这就是我现在正在使用的东西,它让我只是字典本身的键和值,而不是词典的键和值:

for k1,v1 in dataMap['eng'].items():
    if type(dataMap['eng'][k1]) == dict:
        for k2, v2 in dataMap['eng'][k1].items():
            if type(dataMap['eng'][k1][k2]) == dict:
                for k3, v3 in dataMap['eng'][k1][k2].items():
                    if type(dataMap['eng'][k1][k2][k3]) == dict:
                        print "key: {}, val: {}".format(k3, v3)
                    else:
                        print "key: {}, val: {}".format(k3, v3)
            else:
                print "key: {}, val: {}".format(k2, v2)
    else:
        print "key: {}, val: {}".format(k1, v1)
Run Code Online (Sandbox Code Playgroud)

其中'eng'是最高级别,它在YAML文件中包含其中的所有其他内容.下面是我正在使用的YAML文件的一个小部分.实际文件中有超过5000行

eng:
  value1: 
    v1: USA
    v2: Canada
    v3: Mexico
  value2:
    value3:
       value4: "some text here"
       value5:
          value6: "some text here"
          value7: " some other text …
Run Code Online (Sandbox Code Playgroud)

python dictionary nested

4
推荐指数
1
解决办法
1085
查看次数

标签 统计

dictionary ×1

nested ×1

python ×1