İşte kodum, gerçekten basit şeyler ...
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)
Bazı alan adlarını bildirin, okuyucu dosyayı okumak için CSV'yi ve dosyayı bir JSON formatına dökmek için dosyalanmış adları kullanır. İşte sorun ...
CSV dosyasındaki her kayıt farklı bir satırdadır. JSON çıktısının aynı şekilde olmasını istiyorum. Sorun şu ki, hepsini tek bir dev, uzun hat üzerine döküyor.
Benzeri bir şey kullanmayı denedim for line in csvfile:
ve sonra kodumu reader = csv.DictReader( line, fieldnames)
her satırda döngü yapan, ancak dosyanın tamamını bir satırda yapıyor, sonra tüm dosya boyunca başka bir satırda döngü yapıyor ... satırlar bitene kadar devam ediyor .
Bunu düzeltmek için herhangi bir öneriniz var mı?
Düzenleme: Açıklığa kavuşturmak için, şu anda var: (1. satırdaki her kayıt)
[{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"},{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}]
Ne arıyorum: (2 satırda 2 kayıt)
{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"}
{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}
Her alan ayrı bir satırda girintili / girintili değil, ancak her kayıt kendi satırında.
Bazı örnek girdiler.
"John","Doe","001","Message1"
"George","Washington","002","Message2"
[{..row..},{..row..},...]
değil{..row..}{..row..}..
. Diğer bir deyişle, çıktı, bağlantısız json nesnelerinin bir akışı değil, json nesnelerinin bir json dizisi olacak gibi görünür.