![](/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.