所以直接解决这个问题。我有一些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/