![](/img/trans.png)
[英]Python - How combine three arrays and outpot as one json file
[英]How to Combine JSON Objects From Different Arrays With Python
我試圖使用Python遍歷不同的JSON數組,以便將所有對象組合成一個數據結構。 JSON如下所示:
data = {
"Wednesday, Apr 3, 2019": [
{
"id": "000",
"keyid": "4273666087",
"name": "Raptor",
"symbol": "RPT",
},
{
"id": "111",
"keyid": "1818114564",
"name": "Duck",
"symbol": "DUK",
}
],
"Tuesday, Apr 2, 2019": [
{
"id": "222",
"keyid": "8032408148",
"name": "Hawk",
"symbol": "HWK",
},
{
"id": "333",
"keyid": "0362766431",
"name": "Goose",
"symbol": "GOO",
}
]
}
由於它看起來像字典,因此我嘗試執行以下操作:
for item in data.values():
print(item)
print("\n")
它將每個數組的對象組合到一個單獨的列表中。 但是我希望所有對象都成為同一數據結構的一部分,以使最終結果看起來像這樣:
id | keyid | name | symbol
-----------------------------------
000 | 4273666087 | Raptor | RPT
-----------------------------------
111 | 1818114564 | Duck | DUK
-----------------------------------
222 | 8032408148 | Hawk | HWK
-----------------------------------
333 | 0362766431 | Goose | GOO
-----------------------------------
最好的方法是什么?
使用pandas
:
import pandas as pd
df = pd.DataFrame([x for k,v in data.items() for x in v])
print(df)
輸出:
id keyid name symbol
0 000 4273666087 Raptor RPT
1 111 1818114564 Duck DUK
2 222 8032408148 Hawk HWK
3 333 0362766431 Goose GOO
您可以使用常規Python來做到這一點,但這將是一個很大的麻煩,因此我支持使用可以一行完成的pandas
。
如要嵌套循環:
import pandas as pd
l = []
for k,v in data.items():
for x in v:
l.append(x)
df = pd.DataFrame(l)
print(df)
你很親密 您想進一步,並打印每一行的值。
print("id", "keyid\t", "name", "symbol", sep='\t|')
for group in data.values():
for row in group:
print("\t|".join([str(i) for i in row.values()]))
生產:
id |keyid |name |symbol
000 |4273666087 |Raptor |RPT
111 |1818114564 |Duck |DUK
222 |8032408148 |Hawk |HWK
333 |0362766431 |Goose |GOO
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.