Aquí, comprenderemos la función jsonify() en el marco web Flask para Python que convierte la salida de una función en un objeto de respuesta JSON. Es similar a la j. hijo.volcados() función en la biblioteca estándar de Python, que convierte un objeto de Python en una cadena con formato JSON.
¿Qué es jsonify()?
La función jsonify() es útil en las aplicaciones Flask porque establece automáticamente los encabezados de respuesta correctos y el tipo de contenido para las respuestas JSON, y le permite devolver fácilmente datos con formato JSON desde sus controladores de ruta. Esto hace que sea más fácil y conveniente crear API que devuelvan datos JSON.
Sintaxis de la función jsonify()
Esta función toma uno o más argumentos posicionales, que representan los datos que se convertirán en un objeto de respuesta JSON, y cualquier número de argumentos de palabras clave, que se utilizan para personalizar el objeto de respuesta JSON.
jsonify(*args, **kwargs)
Ejemplo de jsonify() sin argumento
Puede usar jsonify() sin ningún argumento; en este caso, devolverá un objeto de respuesta JSON vacío con un código de estado predeterminado de 200 (OK) y un tipo de contenido predeterminado de aplicación/json.
Python3
from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()> |
>
>
Ejemplo de jsonify() con argumentos
En este ejemplo, llamamos a jsonify() con un único argumento posicional (la lista de objetos de usuario), así como dos argumentos de palabras clave con estado y tipo MIME. El argumento de estado se usa para establecer el código de estado HTTP para la respuesta y el argumento tipo mime se usa para establecer el tipo de contenido de la respuesta.
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étodo jsonify() en Flask
En este ejemplo, tenemos una aplicación Flask con una ruta que devuelve una lista de objetos de usuario. Cuando un cliente realiza una solicitud a esta ruta, se ejecuta la función get_users() y la lista de objetos de usuario se convierte en un objeto de respuesta JSON utilizando la función jsonify(). Este objeto de respuesta JSON luego se envía de vuelta al cliente.
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()> |
>
ubuntu que comando
>
Producción:

método jsonify()
Método json.dumps() en Flask
Por el contrario, si utilizaras el json.volcados() función, necesitaría convertir usted mismo la lista de objetos de usuario a una cadena con formato JSON y luego configurar los encabezados de respuesta apropiados y devolver la respuesta al cliente manualmente:
Usar jsonify() es generalmente más fácil y conveniente que usar json.dumps(), por lo que se recomienda usar jsonify() siempre que sea posible en las aplicaciones 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()> |
>
>
Producción:
http://127.0.0.1:5000/api/users
Por qué utilizar jsonify() en lugar de json.dumps()
Hay varias razones por las que se recomienda utilizar la función jsonify() en lugar de la función json.dumps() en las aplicaciones Flask:
- Jsonify() es más conveniente y fácil de usar que json.dumps(). jsonify() tiene una sintaxis simple e intuitiva y maneja automáticamente los detalles de convertir sus datos en un objeto de respuesta JSON y devolverlos al cliente. Por el contrario, json.dumps() requiere que usted mismo maneje estos detalles, lo que puede llevar más tiempo y ser más propenso a errores.
- jsonify() establece automáticamente los encabezados de respuesta y el tipo de contenido correctos para las respuestas JSON, mientras que json.dumps() no lo hace. Esto significa que no tiene que configurar manualmente el encabezado Content-Type en application/json cuando usa jsonify(), pero sí tendría que hacerlo manualmente cuando usa json.dumps().
- jsonify() le permite devolver fácilmente datos con formato JSON desde sus controladores de ruta, mientras que json.dumps() no. Con jsonify(), simplemente puede devolver los datos que desea convertir en un objeto de respuesta JSON desde su controlador de ruta, y jsonify() se encargará del resto. Con json.dumps(), usted mismo tendría que convertir los datos a una cadena con formato JSON y luego devolverlos como parte de un objeto Respuesta.
- En general, usar jsonify() en lugar de json.dumps() en aplicaciones Flask puede hacer que sea más fácil y conveniente crear API que devuelvan datos JSON. Le permite concentrarse en los datos y la lógica de su aplicación, en lugar de tener que preocuparse por los detalles del formato y la devolución de respuestas JSON.