[英]Python: create nested dictionary from parent-child mapping
我有如下的子父映射:
{4:6,
6:9,
7:6,
5:6,
8:9,
11:9,
10:9,
12:10,
13:10}
我想使用上面创建以下嵌套字典:
{"id":9,
"children":[
{"id":6,
"children":[
{"id":4,
"children":[]},
{"id":5,
"children":[]},
{"id":7,
"children":[]},
]
},
{"id":10,
"children":[
{"id":12,
"children":[]},
{"id":13,
"children":[]},
]
},
{"id":11,
"children":[]
},
{"id":8,
"children":[]
}
]
}
我能够弄清楚如果不是将键作为“id”和值为 9,6 等,我将值作为键,我该怎么做。 请帮助我使用上述格式。
我得到了我的查询的解决方案。
我将子-父映射转换为元组列表,如下所示:
queue_tuples= [(6,9,1),(11,9,1),(8,9,1),(10,9,1),(5,6,2),(7,6,2),(4,6,2),(12,10,2),(13,10,2)]
root = 9
以下是代码:
pGraph = {"id":root,"children":[]}
for tuple in queue_tuples:
level = tuple[2]
g = pGraph["children"]
for i in range(level-1):
for e in g:
if tuple[1]==e["id"]:
g = e["children"]
flag = 0
for e in g:
if tuple[0]==e["id"]:
flag = 1
break
if flag==0:
g.append({"id":tuple[0],"children":[]})
print pGraph
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.