这是我的代码,非常简单的东西...
import csv
import json
csvfile = open('file.csv', 'r')
jsonfile = open('file.json', 'w')
fieldnames = ("FirstName","LastName","IDNumber","Message")
reader = csv.DictReader( csvfile, fieldnames)
out = json.dumps( [ row for row in reader ] )
jsonfile.write(out)
声明一些字段名称,读者使用 CSV 读取文件,并使用字段名称将文件转储为 JSON 格式。以下是问题...
CSV 文件中的每个记录都在不同的行上。我希望 JSON 输出也是这样。问题是它把所有内容都倾倒在一行上。
我尝试过像 for line in csvfile:
这样的代码,然后在它下面运行我的代码,如 reader = csv.DictReader(line, fieldnames)
,它会循环遍历每一行,但是它会在一个巨大的长行上处理整个文件,然后再在另一行上循环遍历整个文件...直到没有行为止。
有什么建议可以纠正这个问题吗?
编辑:为了澄清,目前我有:
[{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"},{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}]
我要找的是:(2个记录,分别放在2行)
{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"}
{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}
不是每个字段都要缩进或单独成行,而是每个记录都要单独成行。
一些示例输入。
"John","Doe","001","Message1"
"George","Washington","002","Message2"
[{..row..},{..row..},...]
而不是{..row..}{..row..}..
。也就是说,输出看起来将是一个JSON对象数组,而不是一系列不相关的JSON对象。 - SingleNegationElimination