这是我的代码,非常简单的东西...
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"
[{..row..},{..row..},...]
不{..row..}{..row..}..
。也就是说,输出看起来将是json对象的json数组,而不是未连接的json对象的流。