python - 使用 Python 脚本将 JSON 文件转换为新的 CSV 文件
问题描述
我正在尝试将 JSON 数据转换为 CSV 格式,以便将其导入 LibreCalc。我找到了一个非常简单的 Python 脚本,它几乎可以满足我的要求,但它不能正常工作。
这是我制作的脚本,取自指南链接中的代码片段。编辑:我无法添加链接,因为堆栈溢出认为它是垃圾邮件。
import json
import csv
#read file
with open('test.json', 'r') as jsonfile:
data=jsonfile.read()
# parse file
jsonobj = json.loads(data)
def jsontocsv(input_json, output_path):
keylist = []
for key in jsonobj[0]:
keylist.append(key)
f = csv.writer(open(output_path, "w"))
f.writerow(keylist)
for record in jsonobj:
currentrecord = []
for key in keylist:
currentrecord.append(record[key])
f.writerow(currentrecord)
jsontocsv(jsonobj,'test.csv')
这是测试 JSON 数据,也取自链接示例。
[{
"Name" : "Bob",
"City" : "San Diego",
"State" : "CA"
},
{
"Name" : "Sue",
"City" : "San Francisco",
"State" : "CA"
},
{
"Name" : "Ted",
"City" : "New York",
"State" : "NY"
},
{
"Name" : "Joe",
"City" : "Miami",
"State" : "FL"
}]
当我运行脚本时,而不是获取如下所示的 CSV 文件:
Name,City,State
Bob,San Diego,CA
Sue,San Francisco,CA
Ted,New York,NY
Joe,Miami,FL
我明白这个...
City,State,Name
San Diego
San Diego,CA
San Diego,CA,Bob
San Francisco
San Francisco,CA
San Francisco,CA,Sue
New York
New York,NY
New York,NY,Ted
Miami
Miami,FL
Miami,FL,Joe
我实际上是在复制这些人的代码并按照他的示例进行操作,所以我不确定自己做错了什么。我已经尝试过使用它并更改缩进等,但似乎没有任何效果。我敢肯定这是非常简单的事情,毫无疑问是我搞砸了,但我无法弄清楚。
将我自己的 JSON 文件与我要转换的实际数据一起使用具有相同的效果。
对此的任何帮助将不胜感激。
谢谢你。
解决方案
推荐阅读
- python - what is the elegant way to convert the datetime to str in one element in python list?
- time-series - echarts - 如何绘制两个不同日期的时间序列
- angularjs - OnChange 事件在 rzslider 中不起作用
- html - 如何从这个特定的 XML 中对邮件进行 xPath 处理?
- kubernetes - 尝试 helm ls 时 configmaps 被禁止错误
- mysql - 如何让我的 MySQL 查询运行得更快?
- python - How to replicate this wikipedia plot?
- java - 在一个域下运行的 Angular 和 Java 应用程序
- angular - error TS2304: Cannot find name 'InputEvent'
- javascript - Which types of queues are in event loop?