gpt4 book ai didi

python - 遍历 json 对象以将根打印到以点分隔的子路径

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:47 26 4
gpt4 key购买 nike

所以直接进入问题。我有一些 json 对象,如下所示。

{
"root": {
"Child": {
"subChild": 10,
"subChild2": 20
},
"Child2": {
"subChild2": 20,
"subChild3": 500
}
}

我想像这样打印输出:

[root.Child.subChild,
root.Child.subChild2],

[root.Child2.subChild2,
root.Child2.subChild3]

json 对象可以有多层嵌套。

最佳答案

这应该做你想做的:

def json_as_dotted_path(obj, path=''):
result = []
for key, value in obj.iteritems():
new_path = path + '.' + key if path else key
if isinstance(value, dict):
result.extend(json_as_dotted_path(value, path=new_path))
else:
result.append(new_path)
return result

json = {
"root": {
"Child": {
"subChild": 10,
"subChild2": 20
},
"Child2": {
"subChild2": 20,
"subChild3": 500
}

}
}

from pprint import pprint

pprint(json_as_dotted_path(json))

输出:

['root.Child2.subChild3',
'root.Child2.subChild2',
'root.Child.subChild',
'root.Child.subChild2']

它可能不会涵盖所有极端情况,但这应该会让您朝着正确的方向前进。

关于python - 遍历 json 对象以将根打印到以点分隔的子路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35619249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com