Maison > développement back-end > Tutoriel Python > Comment renvoyer des données JSON dans FastAPI : conversion automatique ou manuelle ?

Comment renvoyer des données JSON dans FastAPI : conversion automatique ou manuelle ?

DDD
Libérer: 2024-12-04 12:29:10
original
966 Les gens l'ont consulté

How to Return JSON Data in FastAPI: Automatic vs. Manual Conversion?

Comment renvoyer des données au format JSON à l'aide de FastAPI ?

Pour renvoyer des données au format JSON à l'aide de FastAPI, vous pouvez utiliser l'encodeur jsonable_encoder pour convertir les structures de données Python en données compatibles JSON. Ceci peut être réalisé en utilisant l'une des options suivantes :

Option 1 : Utiliser automatiquement jsonable_encoder

Renvoyer les données comme d'habitude et FastAPI gérera automatiquement la conversion JSON. FastAPI utilise en interne jsonable_encoder pour convertir les données au format compatible JSON. Le jsonable_encoder garantit que les objets non pris en charge, comme les objets datetime, sont convertis en chaînes. FastAPI encapsule ensuite les données dans un objet JSONResponse avec un type de média application/json, que le client reçoit sous forme de réponse JSON.

from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse

def return_dict():
    data_dict = {"name": "John Doe", "age": 30}
    return JSONResponse(content=jsonable_encoder(data_dict))
Copier après la connexion

Option 2 : Conversion JSON manuelle

Si vous devez effectuer une conversion JSON personnalisée, vous pouvez renvoyer directement un objet Response avec le media_type défini sur 'application/json' et le contenu défini aux données codées en JSON. N'oubliez pas d'utiliser la fonction json.dumps() avec l'argument default=str pour vous assurer que les objets non pris en charge sont convertis en chaînes avant d'être codés en JSON.

import json
from fastapi import Response

def return_response():
    data_dict = {"name": "John Doe", "age": 30}
    json_data = json.dumps(data_dict, default=str)
    return Response(content=json_data, media_type="application/json")
Copier après la connexion

Remarques supplémentaires :

  • Par défaut, FastAPI ajoute un en-tête Content-Length et Content-Type au réponse.
  • Vous pouvez spécifier un code d'état personnalisé pour la réponse en définissant l'attribut status_code de l'objet Response ou JSONResponse.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal