Вот мой код, очень простые вещи ...
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.