Maison  >  Article  >  développement back-end  >  Comment analyser les données JSON entrantes à l'aide du corps de la requête dans FastAPI

Comment analyser les données JSON entrantes à l'aide du corps de la requête dans FastAPI

王林
王林original
2023-07-28 16:17:173478parcourir

Comment analyser les données JSON entrantes à l'aide du corps de la requête dans FastAPI

FastAPI est un framework Web moderne basé sur Python qui offre des fonctionnalités riches et une prise en charge asynchrone hautes performances. Lorsque vous utilisez FastAPI pour gérer les requêtes HTTP, il est souvent nécessaire d'analyser les données JSON entrantes. Cet article explique comment utiliser le corps de la requête pour analyser les données JSON entrantes dans FastAPI et fournit des exemples de code correspondants.

  1. Importer les dépendances

Tout d'abord, nous devons importer les dépendances FastAPI et le module JSONResponse pour traiter et renvoyer les données JSON.

from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
  1. Créez un objet d'application FastAPI

Ensuite, nous créons un objet d'application FastAPI.

app = FastAPI()
  1. Écrivez une fonction de traitement de route

Ensuite, nous écrivons une fonction de traitement de route parse_json pour traiter la requête POST reçue et analyser les données JSON entrantes. parse_json,用于处理接收到的POST请求,并解析传入的JSON数据。

@app.post("/parse_json")
async def parse_json(request: Request):
    try:
        json_data = await request.json()
        # 在这里可以对json_data进行处理
        return {"status": "success", "data": json_data}
    except Exception as e:
        return JSONResponse(status_code=400, content={"status": "error", "message": str(e)})

在上述代码中,我们使用request.json()方法来解析传入的JSON数据。解析后的数据将以Python的字典形式存储在json_data变量中,我们可以对其进行进一步处理。

  1. 启动应用

最后,我们启动FastAPI应用。

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

至此,我们已经完成了在FastAPI中使用请求体解析传入的JSON数据的代码编写。

使用示例:

通过发送POST请求到http://localhost:8000/parse_json,并在请求体中包含JSON数据,即可调用parse_json

$ curl -X POST -H "Content-Type: application/json" -d '{"name":"John", "age":30}' http://localhost:8000/parse_json

Dans le code ci-dessus, nous utilisons la méthode request.json() pour analyser les données JSON entrantes. Les données analysées seront stockées dans la variable json_data sous la forme d'un dictionnaire Python, que nous pourrons traiter davantage.

    Démarrez l'application

    Enfin, nous démarrons l'application FastAPI.

    {"status": "success", "data": {"name": "John", "age": 30}}

    À ce stade, nous avons terminé l'écriture du code pour utiliser le corps de la requête pour analyser les données JSON entrantes dans FastAPI.

    Exemple d'utilisation :

    🎜En envoyant une requête POST à ​​http://localhost:8000/parse_json et en incluant des données JSON dans le corps de la requête, vous pouvez appeler le parse_json route Traiter les fonctions et effectuer l’analyse des données JSON. 🎜🎜Par exemple, utilisez curl pour envoyer une requête : 🎜
    {"status": "error", "message": "Expecting property name enclosed in double quotes: line 1 column 2 (char 1)"}
    🎜Le résultat renvoyé est le suivant : 🎜rrreee🎜Si les données entrantes ne sont pas dans un format JSON légal, une erreur 400 et le message d'erreur correspondant seront renvoyés : 🎜rrreee 🎜Résumé : 🎜🎜Cet article présente comment utiliser le corps de la requête pour analyser les données JSON entrantes dans FastAPI, et des exemples de code correspondants sont fournis. Grâce aux étapes ci-dessus, nous pouvons facilement traiter les données JSON reçues et effectuer d'autres opérations et traitements. J'espère que cet article pourra vous aider à analyser les données JSON dans le développement FastAPI ! 🎜

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!

Déclaration:
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