우와한 개발자

[Python] JSON 파일 읽고 쓰기 - json.dump/load, HDF5, 파일 형식 비교

by 우와한개발자

[ JSON 파일 읽고 쓰기 ]

1. JSON 파일이란?

  • 데이터를 키:값 형태로 저장하는 텍스트 기반 데이터 형식
  • 파이썬의 json 모듈을 사용하여 읽고 쓸 수 있음

 

2. JSON 쓰기

1) json.dump()

  • 파이썬 객체를 JSON 파일로 저장
import json

data = {'name': '홍길동', 'age': 30}

with open('data.json', 'w') as f:
    json.dump(data, f, indent=4)  # indent로 들여쓰기 지정

 

2) default 훅

  • 기본적으로 직렬화되지 않는 객체(예: 클래스 인스턴스)를 JSON으로 변환할 때 사용
def custom_encoder(obj):
    return obj.__dict__

json.dump(data, f, default=custom_encoder)

 

3. JSON 읽기

1) json.load()

  • JSON 파일을 파이썬 딕셔너리로 읽기
with open('data.json', 'r') as f:
    data = json.load(f)

 

2) object_hook

  • 읽어온 JSON 데이터를 특정 객체로 변환할 때 사용
def custom_decoder(d):
    return MyClass(**d)

with open('data.json', 'r') as f:
    data = json.load(f, object_hook=custom_decoder)

 

[ HDF5(또는 H5) ]

1. HDF5(H5)란?

  • 대용량 데이터를 빠르게 읽고 쓰기 위한 바이너리 파일 형식
  • 텍스트 파일로 열 수 없으며, 일반적으로 판다스의 read_hdf() 를 통해 사용
  • 텍스트 기반 파일(CSV 등)보다 읽기 속도가 빠름
  • 실무에서 사용 빈도는 낮은 편
구분 HDFS HDF5
용도 분산 파일 시스템 (빅데이터) 과학/수치 데이터 저장 포맷
사용 환경 하둡 클러스터 로컬 또는 단일 파일

 

2. HDF5 사용법

  • tables 라이브러리 설치 필요 (pip install tables)
  • pandas.DataFrame.to_hdf() / pd.read_hdf() 예시 코드
import pandas as pd

# 저장
df.to_hdf('data.h5', key='df', mode='w')

# 읽기
df = pd.read_hdf('data.h5', key='df')

 

[ 파일 형식 비교 ]

구분 CSV Pickle HDF5
저장 형식 텍스트 바이너리 바이너리
읽기 속도 느림 보통 빠름
대용량 적합
다른 언어 호환

 

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기