Lors du renvoi de données JSON dans FastAPI à l'aide de json.dumps(), évitez double sérialisation. FastAPI effectue une sérialisation automatique en coulisse, donc l'appel manuel de json.dumps() peut conduire à une sortie tronquée, visible sous forme de chaîne au lieu de JSON.
Option 1 : sérialisation automatique
Renvoyez simplement les données sous forme de dictionnaires, de listes, etc. FastAPI les convertira automatiquement en Format compatible JSON en utilisant son jsonable_encoder intégré et enveloppez-le dans un JSONResponse. Cette approche garantit une sérialisation appropriée et la prise en charge de la sérialisation d'objets non sérialisables tels que les dates et heures.
from datetime import date data = [{"User": "a", "date": date.today(), "count": 1}] @app.get('/') async def main(): return data
Option 2 : sérialisation personnalisée
Dans des scénarios spécifiques, la sérialisation manuelle peut être nécessaire. Dans ce cas, envisagez de renvoyer un objet Response personnalisé avec le type de média défini sur application/json.
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')
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!