Vermeiden Sie die Rückgabe von JSON-Daten in FastAPI mit json.dumps() doppelte Serialisierung. FastAPI führt im Hintergrund eine automatische Serialisierung durch, sodass der manuelle Aufruf von json.dumps() zu einer verstümmelten Ausgabe führen kann, die als Zeichenfolge anstelle von JSON sichtbar ist.
Option 1: Automatische Serialisierung
Daten einfach als Wörterbücher, Listen usw. zurückgeben. FastAPI konvertiert sie automatisch in JSON-kompatibles Format mithilfe des integrierten jsonable_encoder erstellen und in eine JSONResponse einschließen. Dieser Ansatz gewährleistet eine ordnungsgemäße Serialisierung und unterstützt die Serialisierung nicht serialisierbarer Objekte wie Datums- und Uhrzeitangaben.
from datetime import date data = [{"User": "a", "date": date.today(), "count": 1}] @app.get('/') async def main(): return data
Option 2: Benutzerdefinierte Serialisierung
In bestimmten Szenarien kann eine manuelle Serialisierung erforderlich sein notwendig sein. Erwägen Sie in diesem Fall die Rückgabe eines benutzerdefinierten Antwortobjekts mit dem Medientyp „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')
Das obige ist der detaillierte Inhalt vonWie kann ich eine doppelte Serialisierung vermeiden, wenn ich JSON-Daten in FastAPI zurückgebe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!