728x90

Python에서 CVS 파일 읽기 및 Json으로 변경하자.

이번에 CVS읽기 3가지 방식을 예시로 들어본다.

 

1. CVS 라이브러리 이용한 배열형로 읽기

2. CVS 라이브러리 이용한 사전형로 읽기

3. Pandas 이용한 CVS 읽기

 

※ 소스

import csv
import pandas
import json

fn = "data.csv"

# 1. csv파일 배열로 읽어오기.
f = open(fn, "r", encoding="utf8", errors="", newline="" )
dt = csv.reader(f, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
header = next(dt)
print(header)
data = []
for row in dt:
    #row는 list
    data.append(row)
    print(row)
f.close()

# json 변환
data2 = json.dumps(data)
print(data2)
 
# 2. csv파일 사전형으로 읽어오기.
f = open(fn, "r", encoding="utf8", errors="", newline="" )
dt = csv.DictReader(f)
data = []
for row in dt:
    #row는dictionary
    #row["column_name"] or row.get("column_name")으로 필요한 항목을 취득할 수 있다.
    data.append(row)
    print(row)
f.close()

# json 변환
data2 = json.dumps(data)
print(data2)

# 3. Pandas이용 csv파일 읽어오기.
data = pandas.read_csv(fn)
print(data)

# json 변환
data2 = json.dumps(data.to_dict())
print(data2)

# json 변환(한글포함)
data3 = json.dumps(data.to_dict(), ensure_ascii=False)
print(data3)

 

Data.csv

"순번","과목","점수"
1,"수학",50
2,"국어",40
3,"과학",55
4,"역사",60
5,"지리",40

 

※ 실행화면

 

728x90
반응형

+ Recent posts