程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何完全遍历未知深度的复杂字典?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何完全遍历未知深度的复杂字典??

开发过程中遇到如何完全遍历未知深度的复杂字典?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何完全遍历未知深度的复杂字典?的解决方法建议,希望对你解决如何完全遍历未知深度的复杂字典?有所启发或帮助; @H_419_0@您可以使用递归生成器将字典转换为平面列表。

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,请注明来意。
标签: