これが私のコードです。本当に単純なものです...
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:
コードの下でコードを実行しようとしましたが、ファイル全体を1行で実行し、ファイル全体を別の行でループします...行がなくなるまで続行します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"