[ FastAPI ] JSON 호환 부호화
(Pydantic 모델 처럼) 데이터 자료형을 ( dict , list , 기타 등등과 같은) JSON과 호환 가능한 것으로 전환해야 할 때가 있습니다.
예를 들어, 데이터베이스에 이것을 저장해야 할 때입니다.
이를 위해, FastAPI는 jsonable_encoder() 함수를 제공합니다.
jsonable_encoder 함수
오로지 JSON과 호환 가능한 데이터만 전달 받은 데이터베이스 fake_db 가 있다고 상상해봅시다.
예를 들어, JSON과 호환되지 않기 때문에, datetime 객체를 전달 받지 않습니다.
따라서, datetime 객체는 ISO 구성 방식에 해당하는 데이터를 포함한 str 로 변환되어야만 합니다.
동일한 방법으로, 데이터베이스는 (어트리뷰트를 사용하는 객체인) Pydantic 모델을 전달 받지 않고, 오로지 dict 만 전달 받습니다.
이를 위해 jsonable_encoder 를 사용할 수 있습니다.
Pydantic 모델 같은, 객체를 전달 받고, JSON과 호환되는 버전을 반환합니다:
이 예시에서, Pydantic 모델은 dict 으로, datetime 은 str 로 변환되었습니다.
호출된 결과는 파이썬 표준 json.dumps() 를 사용하여 부호화될 수 있는 것입니다.
이것은 (문자열로써) JSON 구성 방식에 있는 데이터를 포함하는 대용량 str 를 반환하지 않습니다. JSON과 호환되는 값 및 서브-값을 갖고 있는 ( dict 과 같은 ) 파이썬 표준 자료 구조를 반환합니다.
참고
jsonable_encoder 는 사실 데이터를 변환하기 위해 FastAPI에 의해 내부적으로 사용됩니다. 그러나 다양한 상황에 유용합니다.
원문
https://fastapi.tiangolo.com/tutorial/encoder/
JSON Compatible Encoder - FastAPI
JSON Compatible Encoder There are some cases where you might need to convert a data type (like a Pydantic model) to something compatible with JSON (like a dict, list, etc). For example, if you need to store it in a database. For that, FastAPI provides a js
fastapi.tiangolo.com
'FastAPI > Tutorial - User Guide' 카테고리의 다른 글
[ FastAPI ] 의존성 - 첫 단계 (0) | 2021.10.06 |
---|---|
[ FastAPI ] 바디 - 수정 (0) | 2021.10.03 |
[ FastAPI ] 경로 동작 구성 (0) | 2021.10.01 |
[ FastAPI ] 오류 처리 (0) | 2021.09.30 |
[ FastAPI ] 요청 폼과 파일 (0) | 2021.09.27 |