Python csv到json漂亮的打印

时间:2017-03-23 20:35:26

标签: python json csv pretty-print

我在使用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'
}
]

唯一的问题是它不是很漂亮。关于如何像第一个例子那样获得格式的任何建议?

0 个答案:

没有答案