我正在开发一个应用程序,并希望使用密钥从json文件中提取数据,并将其存储到csv文件中以供进一步使用。
示例json数据看起来类似于:
{“姓名”:“约翰”,“办公室”:“第一大道”,“出生日期”:"1978-01-01"},{“名称”:“简”,“办公室”:“第二大道”,“出生日期”:"1970-01-01"}
这只是虚拟数据
到目前为止我所做的是:
with open("input.json") as infile, open('output.csv', 'w') as outfile:
writer = csv.writer(outfile, delimiter=' ')
i=0
for line in infile:
d = json.loads(line)
writer.writerows(d[i]['Name'])
i=i+1但是,使用此代码,我面临的问题是csv文件看起来类似于:
J O H N
这就是我想要的
名字 约翰 简
你知不知道为何会发生这种情况,以及如何解决?
还:
我想在csv中添加一个标签,作为第二列。如:
名称ID 约翰0 简0
发布于 2019-05-21 15:00:00
就我个人而言,我对pandas非常直截了当
import pandas as pd
df = pd.read_json('input.json')
df['Name'].to_csv('output.csv', index=False)
df['ID'] = O
df[['Name','ID']].to_csv('output_2.csv', index=False, sep = ' ')据我所知,'ID‘值总是等于0。对,是这样?
发布于 2019-05-21 14:34:41
对于每一行,您的“名称”不是一个列表。
line = '{"Name": "John", "Office": "1st Ave", "Birth date": "1978-01-01"}'
d = json.loads(line)
d['Name'] # "John"您需要在writerows之前创建一个项目列表
names = [json.loads(x)['Name'] for x in lines]
writer.writerows(names)https://stackoverflow.com/questions/56240569
复制相似问题