python - 如何将 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
}]
解决方案
这是我能做的最好的:
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([])
让我知道我们是否可以进一步改进它。
推荐阅读
- javascript - 当 Mac 设置(不是浏览器设置)拒绝位置共享时,HTML5 Geolocation API 悄然失败
- html - Html Css在两行和两列中删除两个div之间的距离
- javascript - 使用 react-transition-group 转换子路由时无法阻止父路由转换
- kotlin - 为什么使用 bylazy 会使我的 Kotlin 代码变慢
- java - 从 Firebase 中的多个节点读取图像
- javascript - 如何在 html 画布中添加撤消/重做功能
- javascript - 错误:mysqld_stmt_execute 的参数不正确
- cobol - 带 V 和逗号的 COBOL PICTURE
- python - Pandas - 根据 id 向每一行添加单独的 Z 分数
- autotools - Autotools 处理本地与已安装数据文件的方法