Flask
Trabajando con JSON
Buscar..
Devolver una respuesta JSON desde la API de Flask
Flask tiene una utilidad llamada jsonify()
que hace que sea más conveniente devolver respuestas JSON
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/get-json')
def hello():
return jsonify(hello='world') # Returns HTTP Response with {"hello": "world"}
Pruébalo con curl
curl -X GET http://127.0.0.1:5000/api/get-json
{
"hello": "world"
}
Otras formas de usar jsonify()
Usando un diccionario existente:
person = {'name': 'Alice', 'birth-year': 1986}
return jsonify(person)
Usando una lista:
people = [{'name': 'Alice', 'birth-year': 1986},
{'name': 'Bob', 'birth-year': 1985}]
return jsonify(people)
Recibiendo JSON de una solicitud HTTP
Si el mimetype de la solicitud HTTP es application/json
, llamar a request.get_json()
devolverá los datos JSON analizados (de lo contrario, devuelve None
)
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():
data = request.get_json()
# ... do your business logic, and return some response
# e.g. below we're just echo-ing back the received JSON data
return jsonify(data)
Pruébalo con curl
El parámetro -H 'Content-Type: application/json'
especifica que se trata de una solicitud JSON:
curl -X POST -H 'Content-Type: application/json' http://127.0.0.1:5000/api/echo-json -d '{"name": "Alice"}'
{
"name": "Alice"
}
Para enviar solicitudes utilizando otros métodos HTTP, sustituya curl -X POST
con el método deseado, por ejemplo, curl -X GET
, curl -X PUT
, etc.
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow