FastAPI進級知識(三)JSON互換符号化
3259 ワード
作者:マイクオムレツ出典:https://www.cnblogs.com/mazhiyong/転載はこの声明を保留してください.ありがとうございます.
データの格納や転送を行う場合、PydanticモデルなどのデータをJSON互換フォーマット(dict、listなど)に変換する必要がある場合があります.
FastAPIは、
上記の例では、Request Bodyが
印刷結果は次のようになります.
ここでjsonable_Encoderは
他のタイプのデータ変換は、独自に実行できます.
データの格納や転送を行う場合、PydanticモデルなどのデータをJSON互換フォーマット(dict、listなど)に変換する必要がある場合があります.
FastAPIは、
jsonable_encoder
関数を提供して実装される.from datetime import datetime
from fastapi import FastAPI
from fastapi.encoders import jsonable_encoder
from pydantic import BaseModel
class Item(BaseModel):
title: str
timestamp: datetime
description: str = None
app = FastAPI()
@app.put("/items/{id}")
def update_item(id: str, item: Item):
json_compatible_item_data = jsonable_encoder(item)
print(json_compatible_item_data)
上記の例では、Request Bodyが
{
"title": "title",
"timestamp": "2017-11-23 16:10:10"
}
印刷結果は次のようになります.
{'title': 'title', 'timestamp': '2017-11-23T16:10:10', 'description': None}
ここでjsonable_Encoderは
datetime
を文字列に変換し,Pydanticモデルをdictフォーマットに変換した.他のタイプのデータ変換は、独自に実行できます.