Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich JSON-formatierte Daten effizient in einer FastAPI-Anwendung zurückgeben?
Bei der Entwicklung einer FastAPI-Anwendung ist es wichtig, die Nuancen der Rückgabe von JSON-formatierten Daten zu verstehen. Dazu müssen Sie sich mit den inneren Abläufen von FastAPI befassen und die Rolle verstehen, die die JSON-Serialisierung spielt.
Der Kern des Problems liegt in der Verwendung von json.dumps() um Objekte vor der Rückgabe zu serialisieren. Obwohl dieser Ansatz logisch erscheinen mag, führt er zu einer redundanten Serialisierung, da FastAPI den Rückgabewert während der Antwortgenerierung automatisch JSON-codiert. Dies führt zu einer scheinbar falschen Zeichenfolgendarstellung der JSON-Daten und nicht zu einem sauber formatierten Diktat.
Um dies zu beheben, müssen Sie FastAPI erlauben, den JSON-Serialisierungsprozess zu verarbeiten. Dies kann durch die direkte Rückgabe von Datenobjekten (Dicts, Listen usw.) erreicht werden. FastAPI konvertiert sie mithilfe des jsonable_encoder nahtlos in JSON-kompatible Daten und verpackt sie in eine JSONResponse. Die resultierende Antwort enthält anwendungs-/json-codierte Daten und stellt so das gewünschte JSON-Format sicher.
Datenobjekte wie erwartet zurückgeben :
@app.get('/') async def main(): return d
Hinter den Kulissen serialisiert FastAPI das Diktat (d) mithilfe von JSONResponse und Codieren Sie es mit json.dumps().
Wenn Sie eine präzise Kontrolle über die Antwort benötigen, verwenden Sie das Antwortobjekt direkt:
@app.get('/') async def main(): return Response(content=json.dumps(d, indent=4, default=str), media_type='application/json')
Dieser Ansatz gewährt Ihnen Freiheit hinsichtlich des Medientyps (z. B. „application/json“) Anpassbarkeit.
Hinweis: Das Standardargument für json.dumps() (str) ermöglicht die Serialisierung von Datetime-Objekten. Durch die Übergabe eines Einzugs können Sie die Formatierung der JSON-Ausgabe steuern.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-formatierte Daten effizient in einer FastAPI-Anwendung zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!