PROGRESS
4 / 10
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 04 #384
데이터프레임을 JSON 파일로 저장하고 내용을 확인하는 프로그램입니다. 빈칸을 채우세요.
main.py
import pandas as pd
df = pd.DataFrame({
'메뉴': ['아메리카노', '라떼'],
'가격': [2000, 2500]
})
# JSON 파일로 저장합니다.
df.('/tmp/menu.json', orient='records', force_ascii=False)
# 저장된 파일 내용 확인
with open('/tmp/menu.json', 'r') as f:
print(f.read())
HINT
힌트: 데이터프레임을 JSON 형식으로 변환하여 저장하는 함수는 to_json()입니다.
실행 결과 예시
[{"메뉴":"아메리카노","가격":2000},{"메뉴":"라떼","가격":2500}]
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
JSON 파일이란?
JSON은 JavaScript Object Notation의 약자로, 웹에서 데이터를 주고받을 때 가장 많이 사용되는 형식입니다.
JSON의 구조
[
{"메뉴": "아메리카노", "가격": 2000},
{"메뉴": "라떼", "가격": 2500}
]
파이썬의 딕셔너리 리스트와 구조가 거의 같습니다.
to_json() 기본 문법
df.to_json("파일경로", orient="records", force_ascii=False)
orient 옵션에 따른 결과 차이
| orient | 형태 | 결과 |
|---|---|---|
'records' |
행 단위 리스트 | [{"메뉴":"아메리카노","가격":2000}, ...] |
'columns' |
열 단위 딕셔너리 | {"메뉴":{"0":"아메리카노",...},"가격":{...}} |
'index' |
인덱스 기준 | {"0":{"메뉴":"아메리카노",...}, ...} |
실무에서는 records를 가장 많이 사용합니다.
force_ascii 옵션
# force_ascii=True (기본값): 한글이 유니코드로 변환
→ {"\uba54\ub274": "\uc544\uba54\ub9ac\uce74\ub178"}
# force_ascii=False: 한글 그대로 저장
→ {"메뉴": "아메리카노"}
CSV vs JSON 비교
| 비교 | CSV | JSON |
|---|---|---|
| 형태 | 표 (행과 열) | 딕셔너리/리스트 |
| 가독성 | 단순 데이터에 적합 | 계층 구조에 적합 |
| 용도 | 통계, 분석 | 웹 API, 설정 파일 |
| 용량 | 작음 | 상대적으로 큼 |
💡 핵심: 한글 JSON 저장 시 반드시
force_ascii=False를 지정하세요.