gpt4 book ai didi

python - 将带有嵌套数组的 JSON 转换为 CSV

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:16 28 4
gpt4 key购买 nike

这是我的 JSON 模板:

{
"field 1": [
{
"id": "123456"
},
{
"about": "YESH"
},
{
"can_post": true
},
{
"category": "Community"
}
],
"field 2": [
{
"id": "123456"
},
{
"about": "YESH"
},
{
"can_post": true
},
{
"category": "Community"
}
]
}

我想使用 Python 将此 JSON 转换为以下格式的 csv:

0 field 1, id, about, can_post, category

1 field 2, id, about, can_post, category

我尝试使用 pandas 读取 json,然后使用 to_csv,但它没有用。

谢谢

最佳答案

import csv
import json

json.load(json_data) 将json_data(json文档(txt/二进制文件))反序列化为python对象。

with open('jsn.txt','r') as json_data:
json_dict = json.load(json_data)

由于您的字段名称(将充当字段名称的键)位于不同的字典中,我们必须检查这些字典并将它们放入列表 field_names 中。

field_names = [ 'field']
for d in json_dict['field 1']:
field_names.extend(d.keys())

with open('mycsvfile.csv', 'w') as f:
w = csv.DictWriter(f, fieldnames = fieild_names)
w.writeheader()

for k1, arr_v in json_dict.items():
temp = {k2:v for d in arr_v for k2,v in d.items()}
temp['field'] = k1
w.writerow(temp)


输出

field,id,about,can_post,category
field 1,123456,YESH,True,Community
field 2,123456,YESH,True,Community


如果你发现上面的字典理解令人困惑

      k1  : arr_v 
'field 1' = [{ "id": "123456" },...{"category": "Community"}]

for d in arr_v:
k2 : v
d --> { "id": "123456" }

关于python - 将带有嵌套数组的 JSON 转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52756660/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com