파이썬에서 JSON 데이터를 CSV 파일로 변환하는 방법?

Python에서 JSON 데이터를 CSV 파일로 변환하는 것은 데이터 조작 및 분석을 위한 일반적인 작업입니다. JSON(JavaScript Object Notation)은 인간과 기계 모두에게 읽기 및 쓰기가 용이하여 데이터 교환에 널리 사용되는 형식입니다. CSV(쉼표로 구분된 값)는 표 형식 데이터를 저장하기 위한 간단한 형식으로, 데이터 분석 및 시각화에 널리 활용됩니다. 본 가이드에서는 다양한 방법을 통해 Python에서 JSON 데이터를 CSV 파일로 변환하는 방법을 설명합니다.

JSON을 CSV로 변환하는 이유는 무엇인가요?

변환 과정에 들어가기 전에 그 배경을 이해하는 것이 중요합니다. JSON과 CSV는 서로 다른 목적을 가집니다:

  • JSON: 계층적 또는 중첩된 데이터 구조에 이상적입니다. 웹 애플리케이션에서 데이터 교환에 흔히 사용됩니다.
  • CSV: 평면적인 표 형식 데이터에 가장 적합합니다. 데이터 분석 도구와 스프레드시트 애플리케이션에서 널리 사용됩니다.

JSON과 CSV의 장단점을 이해하면 필요에 맞는 최적의 형식을 선택하는 데 도움이 됩니다.

방법 1: csvjson 라이브러리 사용

파이썬의 내장 csvjson 라이브러리는 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을 포함한 CSVJSON 사용

중첩된 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에 가입하여 최상급 웹 스크래핑 제품을 경험해 보세요.

시작할 준비가 되셨나요?