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.