파이썬에서 JSON 데이터를 CSV 파일로 변환하는 방법?
Python에서 JSON 데이터를 CSV 파일로 변환하는 것은 데이터 조작 및 분석을 위한 일반적인 작업입니다. JSON(JavaScript Object Notation)은 인간과 기계 모두에게 읽기 및 쓰기가 용이하여 데이터 교환에 널리 사용되는 형식입니다. CSV(쉼표로 구분된 값)는 표 형식 데이터를 저장하기 위한 간단한 형식으로, 데이터 분석 및 시각화에 널리 활용됩니다. 본 가이드에서는 다양한 방법을 통해 Python에서 JSON 데이터를 CSV 파일로 변환하는 방법을 설명합니다.
JSON을 CSV로 변환하는 이유는 무엇인가요?
변환 과정에 들어가기 전에 그 배경을 이해하는 것이 중요합니다. JSON과 CSV는 서로 다른 목적을 가집니다:
- JSON: 계층적 또는 중첩된 데이터 구조에 이상적입니다. 웹 애플리케이션에서 데이터 교환에 흔히 사용됩니다.
- CSV: 평면적인 표 형식 데이터에 가장 적합합니다. 데이터 분석 도구와 스프레드시트 애플리케이션에서 널리 사용됩니다.
JSON과 CSV의 장단점을 이해하면 필요에 맞는 최적의 형식을 선택하는 데 도움이 됩니다.
방법 1: csv 및 json 라이브러리 사용
파이썬의 내장 csv 및 json 라이브러리는 JSON 데이터를 CSV로 변환하는 간단한 방법을 제공합니다.
import json
import csv
# 샘플 JSON 데이터
json_data = '''
[
{"name": "John", "age": 30, "city": "New York"},
{"name": "Anna", "age": 22, "city": "London"},
{"name": "Mike", "age": 32, "city": "Chicago"}
]
'''
# JSON 데이터 파싱
data = json.loads(json_data)
# 쓰기 모드로 CSV 파일 열기
with open('output.csv', 'w', newline='') as csv_file:
# CSV 라이터 객체 생성
csv_writer = csv.writer(csv_file)
# 헤더 행 작성
header = data[0].keys()
csv_writer.writerow(header)
# 데이터 행 작성
for row in data:
csv_writer.writerow(row.values())
이 방법은 JSON 데이터를 읽고 파이썬 사전으로 파싱한 후 CSV 파일에 기록합니다.
방법 2: pandas 사용
Pandas는 데이터 조작 및 분석을 위한 강력한 라이브러리입니다. 이를 통해 변환 과정을 쉽고 효율적으로 수행할 수 있습니다.
import pandas as pd
# 샘플 JSON 데이터
json_data = '''
[
{"name": "John", "age": 30, "city": "New York"},
{"name": "Anna", "age": 22, "city": "London"},
{"name": "Mike", "age": 32, "city": "Chicago"}
]
'''
# JSON 데이터를 DataFrame으로 로드
df = pd.read_json(json_data)
# DataFrame을 CSV 파일로 출력
df.to_csv('output.csv', index=False)
Pandas는 몇 줄의 코드로 변환을 처리하므로 복잡한 데이터 조작 작업에 선호되는 선택입니다.
방법 3: 중첩된 JSON을 포함한 CSV 및 JSON 사용
중첩된 JSON 구조를 처리하려면 변환 전에 데이터를 평탄화해야 합니다. 이를 위해 pandas의 json_normalize 함수를 사용할 수 있습니다.
import pandas as pd
from pandas import json_normalize
# 중첩된 JSON 데이터 예시
nested_json_data = '''
[
{
"name": "John",
"age": 30,
"address": {"city": "New York", "zip": "10001"}
},
{
"name": "Anna",
"age": 22,
"address": {"city": "London", "zip": "SW1A"}
}
]
'''
# JSON 데이터 로드 및 정규화
df = pd.json_normalize(json.loads(nested_json_data))
# DataFrame을 CSV 파일로 출력
df.to_csv('output.csv', index=False)
이 접근 방식은 복잡한 JSON 구조를 평면 CSV 형식으로 변환하는 데 유용합니다.
JSON 대 XML
JSON과 XML 모두 데이터 교환에 사용되지만, JSON은 일반적으로 읽고 쓰기가 더 쉽습니다. 그러나 XML은 복잡한 스키마를 정의할 수 있는 능력 덕분에 더 강력할 수 있습니다. JSON과 XML의 차이점을 이해하면 프로젝트에 적합한 형식을 선택하는 데 도움이 됩니다.
결론
Python에서 JSON 데이터를 CSV로 변환하는 것은 csv, json, pandas와 같은 라이브러리를 사용하면 간단한 과정입니다. 각 방법에는 장점이 있으며, 선택은 데이터의 복잡성과 특정 요구 사항에 따라 달라집니다. JSON과 CSV에 대한 정보가 궁금하다면 이 글을 읽어보세요.
지금 바로 Bright Data에 가입하여 최상급 웹 스크래핑 제품을 경험해 보세요.