所以直接面对这个问题。我有一些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对象可以有多个嵌套级别。
答案 0 :(得分:4)
这应该做你想要的:
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']
它可能无法覆盖所有角落情况,但这应该让你朝着正确的方向前进。