我在使用Python将csv文件转换为json文件时遇到了一些问题。主要是按照我想要的方式格式化它,如下所示:
[{'foo':'bar', 'foobar':'baz'},
{'foo':'bar', 'foobar':'baz'},
...
{'foo':'bar', 'foobar':'baz'}]
最初我有这个用于我的转换:
csv_file = csv.DictReader(open(infile.csv, 'r'))
json_file = open(outfile.json, 'w')
json_file.write('[')
for row in csv_file:
json.dump(row, json_file)
json_file.write(',\n')
json_file.write(']')
json_file.close()
这给了我想要的外观,但问题是它在最终的json对象的末尾添加了一个逗号,这会创建一个无效的json文件。
然后我尝试首先将csv数据加载到列表中,然后转储:
csv_file = csv.DictReader(open(infile.csv, 'r'))
json_file = open(outfile.json, 'w')
data = []
for row in csv_file:
data.append(row)
json.dump(data, json_file, indent=0)
json_file.close()
虽然这种方法给了我一个有效的格式,但它也给了我一个看起来像这样的文件:
[
{
'foo':'bar',
'foobar':'baz'
},
{
'foo':'bar',
'foobar':'baz'
},
...
{
'foo':'bar',
'foobar':'baz'
}
]
唯一的问题是它不是很漂亮。关于如何像第一个例子那样获得格式的任何建议?