Files
fastapi/docs/ko/docs/tutorial/encoder.md
Sebastián Ramírez cf8dc98aad 🌐 Update translations for ko (update-outdated) (#14589)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
2026-01-11 00:15:26 +00:00

1.9 KiB

JSON 호환 가능 인코더

데이터 유형(예: Pydantic 모델)을 JSON과 호환되는 형태(예: dict, list 등)로 변환해야 하는 경우가 있습니다.

예를 들면, 데이터베이스에 저장해야 하는 경우입니다.

이를 위해, FastAPI에서는 jsonable_encoder() 함수를 제공합니다.

jsonable_encoder 사용

JSON 호환 가능 데이터만 수신하는 fake_db 데이터베이스가 존재한다고 가정하겠습니다.

예를 들면, datetime 객체는 JSON과 호환되지 않으므로 이 데이터베이스는 이를 받지 않습니다.

따라서 datetime 객체는 ISO format의 데이터를 포함하는 str로 변환되어야 합니다.

같은 방식으로 이 데이터베이스는 Pydantic 모델(속성이 있는 객체)을 받지 않고, dict만을 받습니다.

이를 위해 jsonable_encoder를 사용할 수 있습니다.

Pydantic 모델 같은 객체를 받고 JSON 호환 가능한 버전을 반환합니다:

{* ../../docs_src/encoder/tutorial001_py310.py hl[4,21] *}

이 예시에서는 Pydantic 모델을 dict로, datetimestr로 변환합니다.

이렇게 호출한 결과는 파이썬 표준인 json.dumps()로 인코딩할 수 있습니다.

JSON 형식(문자열)의 데이터가 들어있는 큰 str을 반환하지 않습니다. JSON과 모두 호환되는 값과 하위 값이 있는 파이썬 표준 데이터 구조(예: dict)를 반환합니다.

/// note | 참고

jsonable_encoder는 실제로 FastAPI에서 내부적으로 데이터를 변환하는 데 사용하지만, 다른 많은 시나리오에서도 유용합니다.

///