Python-遍历所有嵌套的字典值?

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'}

回答:

如Niklas所说,你需要递归,即你想定义一个函数来打印你的字典,如果值是一个dict,则想使用这个新字典来调用你的打印函数。

就像是 :

def myprint(d):

for k, v in d.iteritems():

if isinstance(v, dict):

myprint(v)

else:

print "{0} : {1}".format(k, v)

或从Python 3开始:

def myprint(d):

for k, v in d.items():

if isinstance(v, dict):

myprint(v)

else:

print("{0} : {1}".format(k, v))

以上是 Python-遍历所有嵌套的字典值? 的全部内容, 来源链接: utcz.com/qa/432315.html

回到顶部