首页 > 解决方案 > 如何将 JSON 转换为 CSV?

问题描述

在 python 中将以下 JSON 转换为 CSV 的最佳方法是什么?

[{
    "header": "_id|_n|_p|_e|_v|_d|_r",
    "data": "1_qweqwe|sometitle|320|0|0|0|0;1_asdasdasd|sometitle2|130|0|0|0|0",
    "totalCount": 13
},
{
    "header": "_id|_n|_p|_e|_v|_d|_r",
    "data": "1_abccd|sometitle3|360|0|0|0|0;1_asdasdasd|sometitle4|320|0|0|0|0",
    "totalCount": 23
},
{
    "header": "_id|_n|_p|_e|_v|_d|_r",
    "data": "1_sdsfsd|sometitle5|600|0|0|0|0;1_asdasdasd|sometitle6|100|0|0|0|0",
    "totalCount": 33
}]

标签: pythonjsoncsv

解决方案


这是我能做的最好的:

import csv
import json

a=[]
x = """[{"header": "_id|_n|_p|_e|_v|_d|_r","data": "1_qweqwe|sometitle|320|0|0|0|0;1_asdasdasd|sometitle2|130|0|0|0|0","totalCount": 13},{"header": "_id|_n|_p|_e|_v|_d|_r","data": "1_abccd|sometitle3|360|0|0|0|0;1_asdasdasd|sometitle4|320|0|0|0|0","totalCount": 23},{"header": "_id|_n|_p|_e|_v|_d|_r","data": "1_sdsfsd|sometitle5|600|0|0|0|0;1_asdasdasd|sometitle6|100|0|0|0|0","totalCount": 33}]"""

x = json.loads(x)

f = csv.writer(open("test.csv", "w"))

f.writerow(["_id", "_n", "_p", "_e", "_v", "_d", "_r","_tt"])

for x in x:
    temp=x["totalCount"]
    for x in x["data"].split(";"):
        print(x)
        f.writerow([x.split('|')[0],x.split('|')[1],x.split('|')[2],x.split('|')[3],x.split('|')[4],x.split('|')[5],x.split('|')[6],temp])
    f.writerow([])

让我知道我们是否可以进一步改进它。


推荐阅读