【发布时间】:2012-09-18 22:26:16
【问题描述】:
我正在尝试从 python 中的一个简单表构建一个 json 层次结构。
数据如下所示:
id parent name
1 10 test-name-1
2 10 test-name-2
3 5 test-name-3
4 none test-name-4
5 10 test-name-5
6 none test-name-6
7 1 test-name-7
8 1 test-name-8
9 8 test-name-9
10 4 test-name-10
我正在寻找这样的输出:
{"$4":{"name":"test-name-4","children":{
"$10":{"name":"test-name-10","children":{
"$1":{"name":"test-name-1","children":{
"$7":{"name":"test-name-7","children":{}},
"$8":{"name":"test-name-8","children":{
"$9":{"name":"test-name-9","children":{}}}}}},
"$2":{"name":"test-name-2","children":{}},
"$5":{"name":"test-name-5","children":{
"$3":{"name":"test-name-3","children":{}}}}}}}},
"$6":{"name":"test-name-6","children":"test-name-6"}}
我不知道会有多少“叶子”或“根”,或者 csv 中的行将以什么顺序进入。我的问题是,有没有一种方法可以递归地构建字典/列表一个子节点到父节点?如何从 python 中树的“叶子”部分生成分层树?
感谢您的帮助!
【问题讨论】:
-
没那么难。为每一行创建树节点(您可以使用
id作为键将它们保存在字典中),然后将子节点添加到各自的父节点。用 json 打印树也应该很简单。试一试,有很多人可以帮助你!