これが私のコードです。本当にシンプルなものです...
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出力を同じようにしたいです。問題は、すべてを1つの巨大な長い行にダンプすることです。
私は次のようなものを使用しfor line in csvfile:
て、reader = csv.DictReader( line, fieldnames)
各行をループするコードの下でコードを実行しようとしましたが、ファイル全体を1行で実行し、ファイル全体を別の行でループします...行がなくなるまで続行します。
これを修正するための提案はありますか?
編集:明確にするために、現在私は持っています:(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配列のようになります。