현대 웹의 데이터 교환 형식은 사실상 JSON으로 통일되어 있습니다.
파이썬에서는 표준 라이브러리 json과 requests의 .json() 메서드만 알면 거의 다 됩니다.
수신: response.json().
r = requests.get("https://api.example.com/users").
users = r.json().
응답이 [{"id":1,...}, ...] 형태면 users는 자동으로 리스트가 됩니다.
잘못된 JSON이면 json.JSONDecodeError 예외가 발생합니다.
송신: json= 파라미터.
requests.post(url, json={"name":"홍길동", "age": 30}) — 파이썬 딕셔너리 → JSON 직렬화 + Content-Type: application/json 헤더 자동 설정.
data=json.dumps(...)로 직접 직렬화하지 말고 json=을 쓰는 게 깔끔합니다.
직접 직렬화는 json 모듈로.
import json.
s = json.dumps(data, ensure_ascii=False, indent=2) — 한국어 안 깨짐 + 들여쓰기.
data = json.loads(s) — 문자열 → 파이썬 객체.
파일은 json.dump(data, fp)·json.load(fp)로 하면 됩니다.
주의 — 한국어와 ensure_ascii.
기본값 True면 한글이 \uXXXX 식으로 escape 됩니다.
ensure_ascii=False로 명시하면 한글 그대로 저장.
또 datetime·Decimal 같은 커스텀 타입은 default= 함수로 직렬화 방법을 직접 줘야 합니다.
한 줄 요약
JSON 송수신은 requests.json() / json= 파라미터로.
직접 직렬화는 json.dumps(ensure_ascii=False) 패턴이 한국어에 필수입니다.
더 알아볼 것
- JSON Schema 검증
- msgspec·orjson — 더 빠른 JSON
- datetime 직렬화 default 함수