csv를 줄 바꿈으로 구분 된 json으로 변환하고 있습니다.
import csv
import json
csvfile = open('input.csv', 'r')
jsonfile = open('output.json', 'w')
reader = csv.DictReader( csvfile, fieldnames)
for row in reader:
json.dump(row, jsonfile)
jsonfile.write('\n')
입력:
firstname,secondname,id,marks
John,Doe,001,50
George,Washington,002,100
산출:
{"firstname": "John", "secondname": "Doe", "id": "001", "marks": "50"}
{"firstname": "George", "secondname": "Washington", "id": "002", "marks": "100"}
꽤 좋습니다. 그러나 내가 사용하고있는 검색 애플리케이션은 이미 스키마에서 "marks"필드를 float로 정의했기 때문에 파일 업로드를 거부합니다. 숫자 필드 주변의 따옴표를 제거한 경우에만 허용됩니다. 따라서 출력이 다음과 같아야합니다.
원하는 출력 :
{"firstname": "John", "secondname": "Doe", "id": "001", "marks": 50}
{"firstname": "George", "secondname": "Washington", "id": "002", "marks": 100}
csv를 json으로 변환하는 동안 필드를 float / string으로 지정할 수있는 방법이 있습니까? (마크를 문자열로 사용하여 스키마를 다시 매핑하면 벗어날 수 있지만 응용 프로그램에서 "마크로 정렬"옵션을 잃게됩니다).
하나의 dict 항목을 float로 변환 :
row["marks"] = float(row["marks"])
코드에 통합 :
for row in reader:
row["marks"] = float(row["marks"])
json.dump(row, jsonfile)
jsonfile.write('\n')
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다