headers - ¿Cómo ''jsonify'' una lista en Flask?
jsonify headers (8)
Esta pregunta ya tiene una respuesta aquí:
- Devolver respuesta JSON de Flask view 8 respuestas
Actualmente, Flask
generaría un error al hacer una lista jonsonante.
Sé que podría haber razones de seguridad https://github.com/mitsuhiko/flask/issues/170 , pero aún me gustaría tener una forma de devolver una lista JSON como la siguiente:
[
{''a'': 1, ''b'': 2},
{''a'': 5, ''b'': 10}
]
en lugar de
{ ''results'': [
{''a'': 1, ''b'': 2},
{''a'': 5, ''b'': 10}
]}
al responder a una application/json
solicitud application/json
. ¿Cómo puedo devolver una lista JSON en Flask usando Jsonify?
El método jsonify()
Flask ahora serializa las matrices de nivel superior a partir de esta confirmación , disponible en Flask 0.11 en adelante.
Para mayor comodidad, puede pasar una lista de Python: jsonify([1,2,3])
O pasar una serie de jsonify(1,2,3)
: jsonify(1,2,3)
Ambos se serializarán en una matriz JSON de nivel superior: [1,2,3]
Detalles aquí: http://flask.pocoo.org/docs/dev/api/#flask.json.jsonify
Esto es trabajo para mí. ¿Qué versión de Flask estás usando?
from flask jsonify
...
@app.route(''/test/json'')
def test_json():
list = [
{''a'': 1, ''b'': 2},
{''a'': 5, ''b'': 10}
]
return jsonify(results = list)
No puedes, pero puedes hacerlo de todos modos así. Lo necesitaba para jQuery-File-Upload
import json
# get this object
from flask import Response
#example data:
js = [ { "name" : filename, "size" : st.st_size ,
"url" : url_for(''show'', filename=filename)} ]
#then do this
return Response(json.dumps(js), mimetype=''application/json'')
Resuelto, sin problemas. Puede ser flojo y usar jsonify, todo lo que necesita hacer es pasar elementos = [su lista].
Mire aquí la solución
Si está buscando literalmente la manera de devolver una lista JSON en el matraz y está completamente seguro de que su variable es una lista, entonces la manera más fácil es (donde bin es una lista de 1 y 0):
return jsonify({''ans'':bin}), 201
Finalmente, en su cliente obtendrá algo como
{"ans": [0.0, 0.0, 1.0, 1.0, 0.0]}
Una lista en un matraz puede ser fácilmente jsonify usando jsonify como:
from flask import Flask,jsonify
app = Flask(__name__)
tasks = [
{
''id'':1,
''task'':''this is first task''
},
{
''id'':2,
''task'':''this is another task''
}
]
@app.route(''/app-name/api/v0.1/tasks'',methods=[''GET''])
def get_tasks():
return jsonify({''tasks'':tasks}) #will return the json
if(__name__ == ''__main__''):
app.run(debug = True)
josonify funciona ... pero si tiene la intención de pasar una matriz sin la clave ''resultados'', puede usar la biblioteca json de python. La siguiente conversión funciona para mí ...
import json
@app.route(''/test/json'')
def test_json():
list = [
{''a'': 1, ''b'': 2},
{''a'': 5, ''b'': 10}
]
return json.dumps(list))
jsonify
impide hacer esto en el Flask 0.10 y bajarlo por razones de seguridad .
Para hacerlo de todos modos, solo use json.dumps
en la biblioteca estándar de Python.