json.dumps() を使用して FastAPI で JSON データを返すときは、次のことを避けてください。ダブル連載。 FastAPI はバックグラウンドで自動シリアル化を実行するため、json.dumps() を手動で呼び出すと出力が文字化けし、JSON ではなく文字列として表示される可能性があります。
オプション 1: 自動シリアル化
単純にデータを辞書として返します。 FastAPI は、組み込みの jsonable_encoder を使用してこれを JSON 互換形式に自動的に変換し、JSONResponse でラップします。このアプローチにより、適切なシリアル化と、datetime などのシリアル化不可能なオブジェクトのシリアル化のサポートが保証されます。
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 中国語 Web サイトの他の関連記事を参照してください。