본문 바로가기
프로그래밍/파이썬(Python)

[파이썬] CSV를 JSON로 변환(python CSV to JSON, JSON to CSV)

by 천상IT 2021. 12. 27.
반응형

파이썬을 사용하여 JSON, CSV 데이터를 처리하다보면

데이터 변환처리가 자주 등장하게된다.

 

CSV를 JSON으로

JSON을 CSV로 변환작업은 어떻게 해야할까?

 

파이썬에서 CSV와 JSON을 변환하는 처리가 필요해서 작성해놓은 코드를 공유한다.

간단한 내용이지만 이것저것 찾다보니 시간이 걸려서 정리해둡니다.

 

CSV를 JSON으로 변환하기 샘플소스(CSV to JSON)

import csv
import json

csv_file1 = 'input.csv'
json_path1 = 'ouput.json'

data = []
with open(csv_file1, 'rt', encoding='UTF-8') as data_csv:
    csv_reader = csv.DictReader(data_csv)
    for csvrows in csv_reader:
        data.append(csvrows)
with open(json_path1, 'wt', encoding='UTF-8') as data_json:
    data_json.write(json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False))

 

 

 

https://stackoverflow.com/questions/19697846/how-to-convert-csv-file-to-multiline-json

 

How to convert CSV file to multiline JSON?

Here's my code, really simple stuff... import csv import json csvfile = open('file.csv', 'r') jsonfile = open('file.json', 'w') fieldnames = ("FirstName","LastName","IDNumber","Message") reader ...

stackoverflow.com

 

 

JSON을 CSV로 변환하기(JSON to CSV)

import csv
import json

input_file_name = "data.txt"
output_file_name = "data.csv"

with open(input_file_name, "r", encoding="utf-8", newline="") as input_file, \
        open(output_file_name, "w", encoding="utf-8", newline="") as output_file:

    data = []
    for line in input_file:
        datum = ujson.loads(line)
        data.append(datum)
        
    csvwriter = csv.writer(output_file)
    csvwriter.writerow(data[0].keys())
    for line in data:
        csvwriter.writerow(line.values())

 

 

CSV를 JSON으로 변환하기(CSV to JSON)

import csv
import json

input_file_name = "data.csv"
output_file_name = "data.txt"

with open(input_file_name, "r", encoding="utf-8", newline="") as input_file, \
        open(output_file_name, "w", encoding="utf-8", newline="") as output_file:
        
    reader = csv.reader(input_file)

    # 첫 줄은 col_names 리스트로 읽어 놓고
    col_names = next(reader)

    # 그 다음 줄부터 zip으로 묶어서 json으로 dumps
    for cols in reader:
        doc = {col_name: col for col_name, col in zip(col_names, cols)}
        print(json.dumps(doc, ensure_ascii=False), file=output_file)

 

파이썬에 가장 많이 사용되는 데이터형 CSV, JSON을 서로 변환하는 방법을 알아보았습니다.

사실 크게 어렵지는 않지만 막상 필요할 때 직접 코딩하려고 하면 조금 시간이 걸리는 작업입니다.

미리 정리를 해두고 나중에 필요할 때 유용하게 사용하시면 될 것 같습니다..

 

그럼 다들 파이썬으로 워라벨하세요~

반응형

댓글