0
我有一些棘手的数据需要处理。基本上我想给一个扁平的列表结构。给一个平面数据阵列提供结构
用简单的英语,应该使:
"level":1
标签是数组"level":2
或更高的标签应该被嵌套在阵列内- 如果没有
"level":1
的关键,把它添加到一个通用的NoLevel1
列表 - 它应该组
tags
只在一起if
它们具有相同的值"level":1
值
我的数据是这样的:
[{
"title": "Set 1",
"tag": [{
"name": "Animals",
"level": 1
},
{ "name": "Cat",
"level": 2
},
{ "name": "Dog",
"level": 3
}
]
},
{
"title": "Set 2",
"tag": [{
"name": "Fruits",
"level": 1
},
{ "name": "Apple",
"level": 2
}]
},
{
"title": "Set 3",
"tag": [{
"name": "Fruits",
"level": 1
},
{ "name": "Orange",
"level": 3
}]
},
{
"title": "Set 4",
"tag": [{
"name": "Cars",
"level": 2
}]
},
{
"title": "Set 5",
"tag": [{
"name": "Random!",
"level": 3
}]
}]
我所需的输出是这样的:
[{
"name": "Animals",
"level":1,
"tag_child": [{
"name": "Cat",
"level": 2
},
{ "name": "Dog",
"level": 3
}]
},
{
"name": "Fruits",
"level":1,
"tag_child": [{
"name": "Apple",
"level": 2
},
{ "name": "Orange",
"level": 3
}]
},
{
"name": "NoLevel1",
"level":1,
"tag_child": [{
"name": "Cars",
"level": 2
},
{ "name": "Random!",
"level": 3
}]
}]
我已经加载的数据,但还没有在给数据的条件进一步得到结构体。
import json
with open("Test.json") as json_file:
l = json_data = json.load(json_file)
for i in thedata:
if i['tag']['level'] > 1:
这几乎就是 - 但是它将每个“level”:1'视为一个新项目,而当它们相同时应该将它们组合。这就是你的代码产生的结果:http://dpaste.com/3D1NHZC – Ycon
我刚刚给你开始一些东西。我现在做了一些改变。你可以检查一下吗。 – Sajin
真棒,几乎在那里。最后一个变化是结果在'tag_child'里面重复。我如何修改只能说唯一的“名称”值? – Ycon