大佬教程收集整理的这篇文章主要介绍了如何完全遍历未知深度的复杂字典?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
def Dict_generator(inDict, pre=NonE): pre = pre[:] if pre else [] if isinstance(inDict, Dict): for key, value in inDict.items(): if isinstance(value, Dict): for d in Dict_generator(value, pre + [key]): yIEld d elif isinstance(value, List) or isinstance(value, tuplE): for v in value: for d in Dict_generator(v, pre + [key]): yIEld d else: yIEld pre + [key, value] else: yIEld pre + [inDict]
@H_301_5@ @H_419_0@它返回
[u'body', u'kind', u'var'] [u'init', u'declarations', u'body', u'type', u'literal'] [u'init', u'declarations', u'body', u'value', 2] [u'declarations', u'body', u'type', u'VariableDeclarator'] [u'ID', u'declarations', u'body', u'type', u'IDentifIEr'] [u'ID', u'declarations', u'body', u'name', u'i'] [u'body', u'type', u'VariableDeclaration'] [u'body', u'kind', u'var'] [u'init', u'declarations', u'body', u'type', u'literal'] [u'init', u'declarations', u'body', u'value', 4] [u'declarations', u'body', u'type', u'VariableDeclarator'] [u'ID', u'declarations', u'body', u'type', u'IDentifIEr'] [u'ID', u'declarations', u'body', u'name', u'j'] [u'body', u'type', u'VariableDeclaration'] [u'body', u'kind', u'var'] [u'init', u'declarations', u'body', u'operator', u'*'] [u'right', u'init', u'declarations', u'body', u'type', u'IDentifIEr'] [u'right', u'init', u'declarations', u'body', u'name', u'j'] [u'init', u'declarations', u'body', u'type', u'BinaryExpression'] [u'left', u'init', u'declarations', u'body', u'type', u'IDentifIEr'] [u'left', u'init', u'declarations', u'body', u'name', u'i'] [u'declarations', u'body', u'type', u'VariableDeclarator'] [u'ID', u'declarations', u'body', u'type', u'IDentifIEr'] [u'ID', u'declarations', u'body', u'name', u'answer'] [u'body', u'type', u'VariableDeclaration'] [u'type', u'Program']
@H_301_5@ @H_419_0@ :固定键列表从[key] + pre
到,pre + [key]
如注释中所述。
解决方法
从中导入
JSON
会得到非常复杂的嵌套结构。例如:{u'body': [{u'declarations': [{u'id': {u'name': u'i',u'type': u'Identifier'},u'init': {u'type': u'Literal',u'value': 2},u'type': u'VariableDeclarator'}],u'kind': u'var',u'type': u'VariableDeclaration'},{u'declarations': [{u'id': {u'name': u'j',u'value': 4},{u'declarations': [{u'id': {u'name': u'answer',u'init': {u'left': {u'name': u'i',u'operator': u'*',u'right': {u'name': u'j',u'type': u'BinaryExpression'},u'type': u'VariableDeclaration'}],u'type': u'Program'}
推荐使用哪种方法行走上述复杂结构?
除了少数几个目录外,大多数字典都是这样,结构可能变得更加复杂,因此我需要一个通用的解决方案。
以上是大佬教程为你收集整理的如何完全遍历未知深度的复杂字典?全部内容,希望文章能够帮你解决如何完全遍历未知深度的复杂字典?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。