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