Python - 如何将父子关系转换为嵌套字典

2 投票
1 回答
2005 浏览
提问于 2025-04-17 18:55

我有一个父子关系的字典,结构是这样的:字典的键是子节点,而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 的顺序。

撰写回答