본문 바로가기

Coding/Python

[Python]JSON, CSV

1. JSON

JSON: 파이썬의 딕셔너리 및 리스트 구조를 기본으로 하는 자료구조, 각 형태가 중첩으로 사용될 수 있다.

 

.json 1차적 활용 예:

import json
import pprint # pretty print

with open('file.json', 'r') as f:
	data = json.load(f)

# data 변수에는 중첩된 dict/list 자료가 저장

# data 변수 출력
pp = pprint.PrettyPrinter(indent = 4)
pp.pprint(data['parameters'][0])

 

2. CSV

CSV(Comma-Seperated Variables): csv 파이썬 내장 모듈과 pandas 모듈로 활용 가능, csv 모듈은 한 줄씩 읽고 처리하여 메모리와 시간 측면에서 유리하다.

 

.csv 읽기 with csv 모듈:

import csv

with open(file.csv, 'r', newline - '') as f:
	# newline 인자는 행을 넘길 때 기본적으로 추가되는 줄 바꿈 문자를 대체한다.
   	reader = csv.DictReader(f)

# reader 객체의 총 행 수와 헤더 출력
print(reader.line_num, reader.fieldnames)

for row in reader:
	print(row)
# 중첩 배열로 일괄 처리보다는 반복문을 활용하는 처리를 권장

.csv 쓰기 with csv 모듈:

# data 변수에 dict 자료형의 자료가 저장됨을 가정

with open('file.csv', 'a', encoding = 'UTF-8', newline = '') as f:
	writer = csv.writer(f)
    writer.writerow(data.keys().append('비고'))
    writer.writerow([13, 23, 41, 25, 26])
    writer.writerow(data.values().append('O'))

 

.csv with pandas 모듈:

import pandas as pd

data = pd.read_csv('data/file.csv')
# csv를 DataFrame으로 반환