这是我的代码,非常简单的东西......
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)
,循环遍历每一行,但它在一行上执行整个文件,然后在另一行上循环遍历整个文件......继续直到它用完行.
有什么建议可以纠正这个问题吗?
编辑:澄清一下,目前我有:(第 1 行的每条记录)
[{"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"