데이터 분석이나 시스템 연동 작업을 하다 보면 JSON
데이터를 CSV
형식으로 변환해야 할 때가 많습니다. Python에서는 이를 간단한 코드로 처리할 수 있습니다. 이번 글에서는 JSON 파일을 CSV로 변환하는 코드를 소개하고, 주요 개념과 사용 방법까지 정리해 보았습니다.
JSON 데이터를 CSV로 변환하는 이유
- CSV는 엑셀 등 다양한 도구에서 쉽게 다룰 수 있는 형식입니다.
- 반면 JSON은 계층 구조로 되어 있어 사람이 직접 보기엔 불편할 수 있습니다.
- Python을 이용하면 간단히 JSON 파일을 읽고, CSV 파일로 저장할 수 있습니다.
Python 코드 예시
아래 코드는 JSON 파일을 읽어서, 그 내용을 CSV 형식으로 저장해주는 간단한 스크립트입니다.
import json
import csv
# JSON 파일 경로
json_file_path = 'input.json'
csv_file_path = 'output.csv'
# JSON 파일 읽기
with open(json_file_path, 'r', encoding='utf-8') as f:
json_data = json.load(f)
# JSON 데이터가 리스트 형태인지 확인
if isinstance(json_data, dict):
json_data = [json_data] # 단일 객체일 경우 리스트로 감싸기
# CSV 파일로 저장
with open(csv_file_path, 'w', newline='', encoding='utf-8') as csvfile:
# 필드 이름 추출 (첫 번째 객체 기준)
fieldnames = json_data[0].keys()
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader() # 컬럼명 작성
writer.writerows(json_data) # 데이터 작성
print("JSON 파일이 CSV로 변환되었습니다.")
코드 설명
json.load(f)
: JSON 파일을 파이썬 객체로 로드합니다.isinstance(json_data, dict)
: JSON이 단일 객체라면 리스트로 감싸주어 처리할 수 있도록 합니다.csv.DictWriter
: key-value 형식의 데이터를 CSV로 저장할 수 있게 해줍니다.writeheader()
: CSV 파일의 첫 줄에 컬럼명을 작성합니다.writerows()
: JSON 리스트의 각 항목을 CSV의 행으로 기록합니다.
사용 방법
input.json
파일을 프로젝트 폴더에 준비합니다.- 위 코드를
.py
파일로 저장하고 실행합니다. - 실행 후
output.csv
파일이 생성됩니다. - 파일을 열어 정상적으로 변환되었는지 확인합니다.
유의사항
- JSON 데이터가 리스트 형식이 아닐 경우(
{}
만 있는 경우) 리스트로 감싸서 처리해야 합니다. - 중첩된 구조의 JSON(예:
{ "user": { "name": "Alice" } }
)는 위 코드로는 바로 CSV 변환이 어렵습니다. 이 경우 flatten 처리가 필요합니다.
반응형
'개발 (Development) > Python' 카테고리의 다른 글
[Python] Pandas DataFrame에서 조건에 따라 행 삭제 및 특정 데이터 추출하는 방법 정리 (2) | 2025.07.20 |
---|---|
[Python] pandas로 DataFrame 비교하여 특정 값 제거하는 방법 (0) | 2025.07.20 |
[Python] 배열을 1000개 단위로 나누어 처리하는 방법 (0) | 2025.05.18 |
[Python] Pandas DataFrame에서 값이 저장되지 않는 이유와 해결 방법 (0) | 2025.05.18 |
[Python] Pandas DataFrame에서 for문을 이용해 특정 컬럼 값 변경하기 (0) | 2025.05.18 |