Anteriormente te mostré cómo leer la petición JSON con Flask, ahora te mostraré cómo codificar datos con JSON y mostrarlos como respuesta al crear una aplicación web o API usando Flask.

En otras palabras te enseñaré a codificar y responder con JSON cuando usas Flask programando con Python.

Codificar datos a JSON con Flask

Lo primero que tienes que hacer es importar la función jsonify de flask. Algo así:

from flask import Flask, jsonify # <-- jsonify es quien hace la magia

Ahora, cada que quieras codificar cualquier valor como JSON simplemente regresa (en la función de la petición) lo que regrese la función jsonify. Así:

@app.route('/')
def inicio():
	nombre = "Luis"
	return jsonify(nombre)

Al regresar lo que regresa jsonify, estarás devolviendo el JSON. Aquí te dejo otro ejemplo para codificar una lista, pero te recuerdo que puedes codificar casi cualquier cosa, pues al final JSON es para eso:

@app.route('/lista')
def lista():
	nombres = ["Luis", "María José", "Maggie", "Panqué"]
	return jsonify(nombres)

Recuerda visitar /lista para ver la lista codificada.

Sobre el formato de JSON

Si especificas debug en True al iniciar la app, el JSON se mostrará formateado con espacios y tabulaciones (pues estás depurando). Si no quieres que aparezca así, simplemente especifica debug en False.

Es decir, el código completo para que muestre el JSON sin debug, sería:

"""
https://parzibyte.me/blog/
"""
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def inicio():
	nombre = "Luis"
	return jsonify(nombre)

@app.route('/lista')
def lista():
	nombres = ["Luis", "María José", "Maggie", "Panqué"]
	return jsonify(nombres)

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

Fíjate en la línea 21, al invocar a app.run yo estoy especificando que no quiero depurar.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto