Python - 如何将父子关系转换为嵌套字典
我有一个父子关系的字典,结构是这样的:字典的键是子节点,而0表示根节点。
node[0]=[{"parms":{"meta1":"foo"},"name":"RootNoe"}]
node[1]=[{"parent":0,"data":{"parms":{"meta2":"bar"},"name":"country"} }]
node[2]=[{"parent":1,"data":{"parms":{"meta3":"baz"},"name":"day"} }]
我需要创建一个嵌套的JSON对象,格式应该是这样的:
test = {
"params": {"parms":{"meta1":"foo"},
"name": "RootNode",
"children": [
{
"parms":{"meta2":"bar"},
"name":"country",
"children": [
{"parms":{"meta3":"baz"},
"name":"day","children": []}
]
}]
}
我该如何在Python中实现这个呢?
1 个回答
2
你可以通过你已有的定义,在一个循环中构建这个树。
for element in node:
if 'parent' in element:
if 'children' not in node[element['parent']]:
node[element['parent']]['children'] = []
node[element['parent']]['children'].append(element)
del element['parent']
test = node[0]
children
这个部分必须存在,这样才能正常工作,不过我希望你能明白这个意思。还有要注意的是,这样做会改变 node
的顺序。