所以直接进入问题。我有一些 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']
它可能不会涵盖所有极端情况,但这应该会让您朝着正确的方向前进。
