logo

Utilisez jsonify() au lieu de json.dumps() dans Flask

Ici, nous comprendrons la fonction jsonify() dans le framework Web Flask pour Python qui convertit la sortie d'une fonction en un objet de réponse JSON. C'est similaire au j fils.dumps() fonction dans la bibliothèque standard Python, qui convertit un objet Python en chaîne au format JSON.

Qu'est-ce que jsonify()

La fonction jsonify() est utile dans les applications Flask car elle définit automatiquement les en-têtes de réponse et le type de contenu corrects pour les réponses JSON, et vous permet de renvoyer facilement des données au format JSON à partir de vos gestionnaires de route. Cela rend plus facile et plus pratique la création d’API qui renvoient des données JSON.



chaîne et sous-chaîne

Syntaxe de la fonction jsonify()

Cette fonction prend en compte un ou plusieurs arguments de position, qui représentent les données à convertir en objet de réponse JSON, et un nombre quelconque d'arguments de mot-clé, qui sont utilisés pour personnaliser l'objet de réponse JSON.

jsonify(*args, **kwargs)

Exemple de jsonify() avec sans argument



Vous pouvez utiliser jsonify() sans aucun argument, dans ce cas, il renverra un objet de réponse JSON vide avec un code d'état par défaut de 200 (OK) et un type de contenu par défaut application/json.

Python3






from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()>

>

>

Exemple de jsonify() avec des arguments

Dans cet exemple, nous appelons jsonify() avec un seul argument de position (la liste des objets utilisateur), ainsi que deux arguments de mot-clé avec le statut et le type MIME. L'argument status est utilisé pour définir le code d'état HTTP de la réponse, et l'argument mimetype est utilisé pour définir le type de contenu de la réponse.

Python3




from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'Alice'>}, {>'id'>:>2>,>'username'>:>'Bob'>}]> >return> jsonify(users, status>=>200>, mimetype>=>'application/json'>)>

>

>

Méthode jsonify() dans Flask

Dans cet exemple, nous avons une application Flask avec une route qui renvoie une liste d'objets utilisateur. Lorsqu'un client fait une requête sur cette route, la fonction get_users() est exécutée et la liste des objets utilisateur est convertie en objet de réponse JSON à l'aide de la fonction jsonify(). Cet objet de réponse JSON est ensuite renvoyé au client.

industrie et usine

Python3




from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/'>)> def> get_users():> >print>(>'Using jsonify'>)> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pallavi'>}]> >return> jsonify({>'users'>: users})> if> __name__>=>=> '__main__'>:> >app.run()>

>

>

Sortir:

Utilisez jsonify() au lieu de json.dumps() dans Flask

Méthode jsonify()

Méthode json.dumps() dans Flask

En revanche, si vous deviez utiliser le json.dumps() fonction, vous devrez convertir vous-même la liste des objets utilisateur en une chaîne au format JSON, puis définir les en-têtes de réponse appropriés et renvoyer la réponse au client manuellement :

Utiliser jsonify() est généralement plus simple et plus pratique que json.dumps(), il est donc recommandé d'utiliser jsonify() autant que possible dans les applications Flask.

Python3




from> flask>import> Flask, Response> import> json> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pandey'>}]> >response>=> Response(> >response>=>json.dumps(users),> >status>=>200>,> >mimetype>=>'application/json'> >)> >return> response> if> __name__>=>=> '__main__'>:> >app.run()>

>

>

Sortir:

http://127.0.0.1:5000/api/users

Utilisez jsonify() au lieu de json.dumps() dans Flask

Pourquoi utiliser jsonify() au lieu de json.dumps()

Il existe plusieurs raisons pour lesquelles il est recommandé d'utiliser la fonction jsonify() au lieu de la fonction json.dumps() dans les applications Flask :

  • Le jsonify() est plus pratique et plus facile à utiliser que json.dumps(). jsonify() a une syntaxe simple et intuitive, et il gère automatiquement les détails de la conversion de vos données en un objet de réponse JSON et de leur renvoi au client. En revanche, json.dumps() vous oblige à gérer ces détails vous-même, ce qui peut prendre plus de temps et être plus sujet aux erreurs.
  • Jsonify() définit automatiquement les en-têtes de réponse et le type de contenu corrects pour les réponses JSON, contrairement à json.dumps(). Cela signifie que vous n'avez pas besoin de définir manuellement l'en-tête Content-Type sur application/json lorsque vous utilisez jsonify(), mais vous devrez le faire manuellement lorsque vous utilisez json.dumps().
  • jsonify() vous permet de renvoyer facilement des données au format JSON à partir de vos gestionnaires de route, contrairement à json.dumps(). Avec jsonify(), vous pouvez simplement renvoyer les données que vous souhaitez convertir en objet de réponse JSON à partir de votre gestionnaire de route, et jsonify() s'occupera du reste. Avec json.dumps(), vous devrez convertir vous-même les données en chaîne au format JSON, puis les renvoyer dans le cadre d'un objet Response.
  • Dans l'ensemble, l'utilisation de jsonify() au lieu de json.dumps() dans les applications Flask peut rendre plus facile et plus pratique la création d'API qui renvoient des données JSON. Il vous permet de vous concentrer sur les données et la logique de votre application, plutôt que d'avoir à vous soucier des détails du formatage et du renvoi des réponses JSON.