728x90
반응형

(Pydantic 모델 처럼) 데이터 자료형을 ( dict , list , 기타 등등과 같은) JSON과 호환 가능한 것으로 전환해야 할 때가 있습니다.

 

예를 들어, 데이터베이스에 이것을 저장해야 할 때입니다.

 

이를 위해, FastAPIjsonable_encoder() 함수를 제공합니다.

 

jsonable_encoder 함수

오로지 JSON과 호환 가능한 데이터만 전달 받은 데이터베이스 fake_db 가 있다고 상상해봅시다.

 

예를 들어, JSON과 호환되지 않기 때문에, datetime 객체를 전달 받지 않습니다.

 

따라서, datetime 객체는 ISO 구성 방식에 해당하는 데이터를 포함한 str 로 변환되어야만 합니다.

 

동일한 방법으로, 데이터베이스는 (어트리뷰트를 사용하는 객체인) Pydantic 모델을 전달 받지 않고, 오로지 dict 만 전달 받습니다.

 

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

 

Pydantic 모델 같은, 객체를 전달 받고, JSON과 호환되는 버전을 반환합니다:

 

 

이 예시에서, Pydantic 모델은 dict 으로, datetimestr 로 변환되었습니다.

 

호출된 결과는 파이썬 표준 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

 

728x90
반응형

'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