【发布时间】:2021-05-25 09:44:22
【问题描述】:
所以我有一个像这样的 JSON 扁平树,作为对象数组:
[{
aid: "id3",
data: ["id1", "id2"]
},
{
aid: "id1",
data: ["id3", "id2"]
},
{
aid: "id2",
nested_data: {aid: "id4", atype: "nested", data: ["id1", "id3"]},
data: []
}]
我想收集那棵树并通过递归循环将 id 解析为数据,就像这样(假设我们从 "id3" 开始):
{
"aid":"id3",
"payload":"1",
"data":[
{
"id1":{
"aid":"id1",
"data":[
{
"id3":null
},
{
"id2":null
}
]
}
},
{
"id2":{
"aid":"id2",
"nested_data":{
"aid":"id4",
"atype":"nested",
"data":[
{
"id1":null
},
{
"id3":null
}
]
},
"data":[
]
}
}
]
}
这样我们就可以进行广度优先搜索并在第一次进入时将某些字段解析为"value": "object with that field" 和"value": Null
如何在 python 3 中做这样的事情?
【问题讨论】:
-
您的输入 JSON 也是无效的。键需要用双引号括起来,键/值对应该用逗号分隔。不确定如何使用它。你有一些代码吗?
-
@trincot:请查看更新版本
-
为什么输入中有
bdata属性?有没有理由不叫data? (您没有回答此评论)为什么输入中有一个具有atype属性的对象?为什么输出中有多个这样的属性? -
为什么
bdata不是数组?如果有多个这样的嵌套依赖怎么办? -
@trincot:巴士拉展示了一个嵌套数据对象的示例,其中包含要解包的数据子字段
标签: python json tree breadth-first-search