Ecco il mio codice, cose davvero semplici ...
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)
Dichiarare alcuni nomi di campo, il lettore utilizza CSV per leggere il file e i nomi archiviati per eseguire il dump del file in un formato JSON. Ecco il problema ...
Ogni record nel file CSV si trova su una riga diversa. Voglio che l'output JSON sia allo stesso modo. Il problema è che scarica tutto su una gigantesca, lunga fila.
Ho provato a utilizzare qualcosa di simile for line in csvfile:
e quindi a eseguire il mio codice sotto quello con reader = csv.DictReader( line, fieldnames)
cui scorre ogni riga, ma esegue l'intero file su una riga, quindi esegue il ciclo dell'intero file su un'altra riga ... continua fino a quando non si esaurisce le righe .
Qualche suggerimento per correggere questo?
Modifica: per chiarire, attualmente ho: (ogni record sulla riga 1)
[{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"},{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}]
Cosa sto cercando: (2 record su 2 righe)
{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"}
{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}
Non ogni singolo campo rientrato / su una riga separata, ma ogni record sulla propria riga.
Alcuni input di esempio.
"John","Doe","001","Message1"
"George","Washington","002","Message2"
[{..row..},{..row..},...]
non{..row..}{..row..}..
. Vale a dire, l'output sembra essere un array json di oggetti json, non un flusso di oggetti json non collegati.