2

キーが子で、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でそれを行うにはどうすればよいですか?

4

1 に答える 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また、これによりシーケンスが変更されることに注意してください。

于 2013-03-13T10:39:22.610 に答える