Ini kode saya, hal yang sangat sederhana ...
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)
Deklarasikan beberapa nama kolom, pembaca menggunakan CSV untuk membaca file, dan nama kolom untuk membuang file ke format JSON. Inilah masalahnya ...
Setiap record di file CSV berada di baris yang berbeda. Saya ingin keluaran JSON dengan cara yang sama. Masalahnya adalah ia membuang semuanya dalam satu garis besar dan panjang.
Saya sudah mencoba menggunakan sesuatu seperti for line in csvfile:
dan kemudian menjalankan kode saya di bawah yang reader = csv.DictReader( line, fieldnames)
dengannya loop melalui setiap baris, tetapi itu melakukan seluruh file pada satu baris, kemudian loop melalui seluruh file di baris lain ... berlanjut sampai kehabisan baris .
Ada saran untuk memperbaiki ini?
Sunting: Untuk memperjelas, saat ini saya memiliki: (setiap catatan di baris 1)
[{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"},{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}]
Apa yang saya cari: (2 catatan pada 2 baris)
{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"}
{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}
Tidak setiap bidang individu menjorok / pada baris terpisah, tetapi setiap catatan pada barisnya sendiri.
Beberapa masukan sampel.
"John","Doe","001","Message1"
"George","Washington","002","Message2"
[{..row..},{..row..},...]
tidak menghasilkan{..row..}{..row..}..
. Artinya, outputnya akan terlihat seperti array json dari objek json, bukan aliran objek json yang tidak terhubung.