作者:麥克煎蛋 出處:https://www.cnblogs.com/mazhiyong/ 轉載請保留這段聲明,謝謝!
在進行數據存儲或者傳輸的時候,有時候我們需要把數據(比如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格式。
其他類型的數據轉換可自行嘗試。