어제 오늘 내일

[Python 실전] 파이썬 딕셔너리를 CSV 파일로 저장하는 법 본문

IT/Python

[Python 실전] 파이썬 딕셔너리를 CSV 파일로 저장하는 법

hi.anna 2026. 6. 8. 23:33

1. 여러 개의 딕셔너리(리스트 형태) 저장하기

가장 흔한 경우입니다. 리스트 안에 여러 개의 딕셔너리가 들어 있는 형태(JSON 배열 형태)를 CSV로 저장할 때는 파이썬 내장 csv 모듈의 DictWriter를 사용합니다.

📌 실전 예제:  활용

import csv

# 저장할 데이터 (리스트 안의 딕셔너리 형태)
data = [
    {"이름": "철수", "나이": 25, "직업": "개발자"},
    {"이름": "영희", "나이": 30, "직업": "디자이너"},
    {"이름": "민수", "나이": 28, "직업": "데이터 분석가"}
]

# 1. 파일 열기 (newline=''은 윈도우에서 줄바꿈 중복 방지)
with open("members.csv", "w", encoding="utf-8-sig", newline="") as f:
    # 2. 필드 이름(컬럼명) 설정
    fieldnames = ["이름", "나이", "직업"]

    # 3. DictWriter 객체 생성
    writer = csv.DictWriter(f, fieldnames=fieldnames)

    # 4. 헤더(컬럼명) 쓰기
    writer.writeheader()

    # 5. 데이터 쓰기 (리스트 전체를 한 번에 저장)
    writer.writerows(data)

print("CSV 파일 저장이 완료되었습니다.")
  • utf-8-sig: 엑셀에서 한글이 깨지지 않도록 인코딩하는 팁입니다.
  • writeheader(): 딕셔너리의 키를 CSV의 첫 번째 줄(제목)로 만듭니다.

2. 단일 딕셔너리(Key-Value 쌍) 저장하기

하나의 딕셔너리에 담긴 정보를 '항목명-값'의 형태로 저장하고 싶을 때 사용합니다.

📌 실전 예제: Key와 Value를 두 컬럼으로 저장

import csv

user_info = {
    "ID": "python_user",
    "Level": 99,
    "Status": "Active",
    "Point": 1500
}

with open("user_info.csv", "w", encoding="utf-8-sig", newline="") as f:
    writer = csv.writer(f)
    # 제목 줄 추가
    writer.writerow(["항목", "값"])

    # 딕셔너리의 데이터를 한 줄씩 쓰기
    for key, value in user_info.items():
        writer.writerow([key, value])

3. 실무 끝판왕: Pandas 활용하기

데이터 양이 많고 복잡하다면 Pandas 라이브러리를 쓰는 것이 가장 빠르고 강력합니다.

📌 실전 예제:  활용

import pandas as pd

data = [
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 30}
]

# 1. 딕셔너리 리스트를 데이터프레임으로 변환
df = pd.DataFrame(data)

# 2. 바로 CSV로 저장 (index=False는 왼쪽 번호 생략)
df.to_csv("data.csv", index=False, encoding="utf-8-sig")

📝 핵심 요약

  1. 표 형태의 데이터: csv.DictWriter를 사용하여 Key를 헤더로, Value를 데이터로 저장한다.
  2. 한글 깨짐 방지: encoding="utf-8-sig"를 사용하면 엑셀에서 바로 열어도 한글이 깨지지 않는다.
  3. 편의성: 복잡한 가공이 필요하다면 Pandas를 사용하는 것이 훨씬 효율적이다.

 

반응형
Comments