【发布时间】:2013-01-21 22:28:18
【问题描述】:
伙计们,
我有任意字典,其中可能包含任意数量的其他字典和数组的嵌套,例如:
{
"a": {
"b": "1",
"c": [
{
"d": "2"
},
{
"d": {
"e": "3",
"f": "4"
}
}
]
}
}
我想把它很好地表示为一棵树,为了做到这一点,我想将它转换为如下结构:
{
"name": "a",
"children": [
{
"name": "b",
"value": "1"
},
{
"name": "c",
"children": [
{
"name": "d",
"value": "2"
},
{
"name": "d",
"children": [
{
"name": "e",
"value": "3"
},
{
"name": "f",
"value": "4"
}
]
}
]
}
]
}
我认为,这样做需要类似地处理子字典和子数组。但是,我很难想出一种方法来进行这种转变。我曾尝试使用递归,也尝试使用包含“名称”、“值”和“孩子”的键/值的节点类,但我很难解析任意深度的输入创建此常规节点/树表示。
这看起来像人们以前做过的事情吗?非常感谢您的意见。
【问题讨论】:
-
只是想知道,这是一个正在生成的 ExtJS 树吗?
-
乔恩,感谢您的留言。在您发表评论之前,我没有听说过 ExtJS,现在正在研究它。说实话,我希望使用 d3.js 将输出用于数据可视化 - 我正在处理的示例是 mbostock.github.com/d3/talk/20111018/tree.html
-
哇 - 太可怕了 - 我也正在使用
d3做一些事情 - 只需要先完成设计......我只是问,因为它看起来像一个嵌套树的东西,我很久以前使用 ExtJS(但只是模糊地熟悉,我倾向于在 JS 东西爆炸之前尽快将其从我的脑海中剔除 :))
标签: python json recursion tree dictionary