본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter18. CSV, JSON 고급 처리

by about_IT 2025. 5. 23.
728x90

CSV와 JSON은 데이터 저장과 전송에서 가장 널리 사용되는 형식입니다. 파이썬은 csvjson 모듈을 통해 이들을 손쉽게 읽고 쓸 수 있도록 지원합니다. 특히 실무에서는 파일 인코딩, 중첩 구조, 필드 이름 처리 등 다양한 세부 제어가 필요합니다.


● CSV 파일 읽기

csv 모듈의 reader를 사용하면 쉼표 구분 텍스트 파일을 한 줄씩 읽을 수 있습니다.

import csv

with open("data.csv", newline='', encoding="utf-8") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

파일이 헤더를 포함하고 있다면 DictReader를 사용하는 것이 더 직관적입니다.

with open("data.csv", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["name"], row["score"])

● CSV 파일 쓰기

with open("output.csv", "w", newline='', encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["name", "score"])
    writer.writerow(["Alice", 95])

DictWriter를 쓰면 딕셔너리 기반 데이터도 쉽게 기록할 수 있습니다.

with open("output.csv", "w", newline='', encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=["name", "score"])
    writer.writeheader()
    writer.writerow({"name": "Bob", "score": 88})

● JSON 파일 처리

JSON은 JavaScript Object Notation의 약자로, 중첩된 자료구조 표현에 매우 유리합니다.

import json

# 쓰기
data = {"name": "Alice", "age": 30}
with open("user.json", "w", encoding="utf-8") as f:
    json.dump(data, f, indent=4, ensure_ascii=False)

# 읽기
with open("user.json", "r", encoding="utf-8") as f:
    user = json.load(f)
    print(user["name"])

JSON은 유니코드와 중첩 구조를 지원하기 때문에 API 통신이나 설정 파일에서 자주 활용됩니다.


● 마무리

CSV와 JSON은 각기 다른 특성을 가진 포맷입니다. CSV는 단순 표 형식에 적합하고, JSON은 중첩 구조와 유연한 키-값 저장에 적합합니다. 프로젝트에 따라 두 포맷을 적절히 선택하고, 파이썬의 내장 모듈을 활용하여 데이터를 안정적으로 입출력하는 습관을 길러야 합니다.

728x90