Ось мій код, дуже прості речі ...
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 був таким самим. Проблема в тому, що це все скидає на одну гігантську довгу чергу.
Я спробував використати щось на зразок, for line in csvfile:
а потім запустити мій код нижче того, з 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"
[{..row..},{..row..},...]
НЕ{..row..}{..row..}..
. Тобто результат виглядає так, ніби це буде масив json із об’єктів json, а не потік не пов’язаних об’єктів json.