我试图循环一个字典,其中一些键有其他字典作为值,其中一些值是它作为值的字典的键.我正在使用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)