for k, v in d.iteritems():
if type(v) is dict:
for t, c in v.iteritems():
print "{0} : {1}".format(t, c)
我正在尝试遍历字典并打印出值不是嵌套字典的所有键值对。如果该值是一个字典,我想进入它并打印出它的键值对……等等。有什么帮助吗?
编辑
这个怎么样?它仍然只打印一件事。
def printDict(d):
for k, v in d.iteritems():
if type(v) is dict:
printDict(v)
else:
print "{0} : {1}".format(k, v)
完整的测试用例
字典:
{u'xml': {u'config': {u'portstatus': {u'status': u'good'}, u'target': u'1'},
u'port': u'11'}}
结果:
xml : {u'config': {u'portstatus': {u'status': u'good'}, u'target': u'1'}, u'port': u'11'}
原文由 Takkun 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如 Niklas 所说,你需要递归,即你想定义一个函数来打印你的 dict,如果值是一个 dict,你想使用这个新的 dict 调用你的打印函数。
就像是 :