将JSON转换为CSV,CSV为空

时间:2019-05-16 16:26:34

标签: python

我正在尝试将JSON中的yelps数据集转换为csv格式。创建的新的csv文件为空。

我尝试了不同的方法来遍历JSON,但是它们都给了我一个零字节的文件。

json文件如下:

{"business_id":"1SWheh84yJXfytovILXOAQ","name":"Arizona Biltmore Golf Club","address":"2818 E Camino Acequia Drive","city":"Phoenix","state":"AZ","postal_code":"85016","latitude":33.5221425,"longitude":-112.0184807,"stars":3.0,"review_count":5,"is_open":0,"attributes":{"GoodForKids":"False"},"categories":"Golf, Active Life","hours":null}
import json 
import csv

infile = open("business.json","r")
outfile = open("business2.csv","w")

data = json.load(infile)
infile.close()

out = csv.writer(outfile)

out.writerow(data[0].keys())
for row in data:
    out.writerow(row.values())

代码运行时,我收到一条“额外数据”消息。新的business2 csv文件为空,大小为零字节。

3 个答案:

答案 0 :(得分:0)

如果您的JSON仅包含一行,那么请尝试

infile = open("business.json","r")
outfile = open("business2.csv","w")

data = json.load(infile)
infile.close()

out = csv.writer(outfile)

#print(data.keys())
out.writerow(data.keys())
out.writerow(data.values())

答案 1 :(得分:0)

嗨,请尝试以下代码,使用with命令,当控件移出with范围之外时,文件访问将自动关闭

infile = open("business.json","r")
outfile = open("business2.csv","w")

data = json.load(infile)
infile.close()
headers = list(data.keys())
values = list(data.values())

with open("business2.csv","w") as outfile:
    out = csv.writer(outfile)
    out.writerow(headers)
    out.writerow(values)

答案 2 :(得分:0)

您需要使用with关闭文件。

import json 
import csv

infile = open("business.json","r")


data = json.load(infile)
infile.close()

with open("business2.csv","w") as outfile:
    out = csv.writer(outfile)
    out.writerow(list(data.keys()))
    out.writerow(list(data.values()))