在FastAPI 中使用json.dumps() 傳回JSON 資料時,避免返回雙數序列化。 FastAPI 在背景執行自動序列化,因此手動呼叫 json.dumps() 可能會導致亂碼輸出,顯示為字串而不是 JSON。
選項 1:自動序列化
簡單地以字典、清單等形式傳回資料。 FastAPI 將使用其內建的 jsonable_encoder 自動將其轉換為 JSON 相容格式,並將其包裝在 JSONResponse 中。此方法可確保正確序列化並支援不可序列化物件(如日期時間)的序列化。
from datetime import date data = [{"User": "a", "date": date.today(), "count": 1}] @app.get('/') async def main(): return data
選項 2:自訂序列化
在特定場景中,手動序列化可能有必要。在這種情況下,請考慮傳回媒體類型設定為 application/json 的自訂 Response 物件。
import json @app.get('/') async def main(): json_str = json.dumps(data, indent=4, default=str) return Response(content=json_str, media_type='application/json')
以上是FastAPI返回JSON資料時如何避免雙重序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!