여기 내 코드, 정말 간단한 것들이 있습니다.
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 배열 인 것처럼 보입니다.