我只是想将简单的Json转换为CSV,使其像表格式一样,因此我可以轻松地将它们加载到我的数据库中。
我正在尝试创建一些通用代码来解析一些具有不同元数据的Json,所以我希望我不必指定列名,而是希望Python自己生成列名。 就像这个Json
[
{
"name":"mike",
"sal":"1000",
"dept":"IT",
},
{
"name":"Joe",
"sal":"1200",
"dept":"IT",
}
]
使其格式如下:
name sal dept
Mike 1000 IT
Joe 1200 IT
我使用下面的代码,但它不起作用
import json
import csv
infile = open(r'c:\test\test.json', 'r')
outfile = open(r'c:\test\test.csv', 'w')
writer = csv.writer(outfile)
for row in json.loads(infile.read()):
writer.writerows(row)
有人可以给我看一些示例代码吗?
由于
答案 0 :(得分:1)
这将对您有所帮助:
writer = csv.DictWriter(f, fieldnames=['name', 'sal', 'dept'])
writer.writeheader()
for i in json.loads(a):
writer.writerow({'name': i['name'], 'sal': i['sal'], 'dept': i['dept']})
答案 1 :(得分:0)
我尝试了你的示例代码,似乎有必要在冒号后用空格格式化.json,就像这样。
[
{
"name": "mike",
"sal": "1000",
"dept": "IT",
},
{
"name": "Joe",
"sal": "1200",
"dept": "IT",
}
]
然后你可以逐行读入你的代码到dict中。 其他所有内容都可以在这里找到:
How do I convert this list of dictionaries to a csv file? [Python]
答案 2 :(得分:0)
阅读JSON
很好。您需要使用csv.DictWriter
写入csv
。它还允许您在fieldnames
文件中提供headers
,因此csv
。
这将进行转换 -
import json
import csv
infile = open(r'test.json', 'r')
with open('test.csv', 'w') as csvfile:
fieldnames = ['name', 'sal', 'dept']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in json.loads(infile.read()):
print(row)
writer.writerow(row)
请参阅https://docs.python.org/2/library/csv.html以获取更多帮助。