Approche incorrecte :
Lors de la sérialisation d'objets à l'aide de json.dumps () avant de les renvoyer dans FastAPI, le JSON sera sérialisé deux fois. Cette double sérialisation entraîne la sortie de chaîne observée.
Pour corriger cela, renvoyez simplement les données comme d'habitude (par exemple, des dictés ou des listes). FastAPI le convertira automatiquement en JSON, garantissant que les objets datetime sont représentés de manière appropriée.
Exemple :
@app.get('/') async def main(): d = [ {"User": "a", "date": date.today(), "count": 1}, {"User": "b", "date": date.today(), "count": 2}, ] return d
Sortie :
[ { "User": "a", "date": "2023-01-09", "count": 1 }, { "User": "b", "date": "2023-01-09", "count": 2 } ]
Si Si nécessaire, vous pouvez sérialiser l'objet manuellement avant de le renvoyer dans un objet Response personnalisé. Définissez le type de média sur « application/json » et encodez vous-même les données sérialisées.
Exemple :
import json @app.get('/') async def main(): d = [ {"User": "a", "date": date.today(), "count": 1}, {"User": "b", "date": date.today(), "count": 2}, ] json_str = json.dumps(d, indent=4, default=str) return Response(content=json_str.encode('utf-8'), media_type='application/json')
Sortie :
[ { "User": "a", "date": "2023-01-09", "count": 1 }, { "User": "b", "date": "2023-01-09", "count": 2 } ]
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!