jsonify headers example code json flask

headers - ¿Cómo ''jsonify'' una lista en Flask?



jsonify headers (8)

Esta pregunta ya tiene una respuesta aquí:

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'')



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))