Json 我如何在烧瓶中列出清单?

Json 我如何在烧瓶中列出清单?,json,flask,Json,Flask,当前,Flask在jsonification列表时会引发错误 我知道可能有安全方面的原因,但我仍然希望有一种方法返回JSON列表,如下所示: [ {'a': 1, 'b': 2}, {'a': 5, 'b': 10} ] 而不是 { 'results': [ {'a': 1, 'b': 2}, {'a': 5, 'b': 10} ]} 响应应用程序/json请求时。如何使用Jsonify在Flask中返回JSON列表?这对我很有用。您使用的是哪种版本的烧瓶 f

当前,
Flask
在jsonification列表时会引发错误

我知道可能有安全方面的原因,但我仍然希望有一种方法返回JSON列表,如下所示:

[
    {'a': 1, 'b': 2},
    {'a': 5, 'b': 10}
]
而不是

{ 'results': [
    {'a': 1, 'b': 2},
    {'a': 5, 'b': 10}
]}

响应
应用程序/json
请求时。如何使用Jsonify在Flask中返回JSON列表?

这对我很有用。您使用的是哪种版本的烧瓶

from flask import jsonify

...

@app.route('/test/json')
def test_json():
    list = [
            {'a': 1, 'b': 2},
            {'a': 5, 'b': 10}
           ]
    return jsonify(results = list)

jsonify
防止您在0.10及更低的烧瓶中执行此操作

无论如何,只要在Python标准库中使用
json.dumps


你不能,但你可以这样做。我需要这个来上传jQuery文件

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

josonify是有效的。但是,如果您只想传递一个没有'results'键的数组,那么可以使用python中的json库。下面的转换对我很有用

 import json

 @app.route('/test/json')
 def test_json():
 list = [
        {'a': 1, 'b': 2},
        {'a': 5, 'b': 10}
       ]
 return json.dumps(list))

解决了,没问题。您可以懒惰地使用jsonify,只需传入items=[您的列表]

看看这里的解决方案

Flask的
jsonify()
方法现在对顶级数组进行了序列化,从年开始,在Flask 0.11版以后提供

为了方便起见,您可以传入Python列表:
jsonify([1,2,3])
或者传入一系列
args
jsonify(1,2,3)

两者都将序列化为JSON顶级数组:
[1,2,3]


此处的详细信息:

使用jsonify可以轻松地对烧瓶中的列表进行jsonify,如:

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)

如果您正在flask中搜索返回JSON列表的方法,并且完全确定您的变量是一个列表,那么简单的方法是(其中bin是1和0的列表):

最后,在您的客户机中,您将获得


{“ans”:[0.0,0.0,1.0,1.0,0.0]}

执行此操作时,我还需要手动设置标题的内容类型?是的,
application/json
@FogleBird哪个安全原因?@Jocelyndelalande:安全不再是一个有效的问题,所以Flask的
jsonify
现在支持转储列表:我正在使用Flask 0.9,但它似乎会输出哈希json而不是列表json。建议不要使用
list
作为变量的标识符还有Flask.json。转储不知道这是否比json好。dumps@CameronWhite-
flask.json
try的简写:将simplejson作为json导入;除了ImportError:import json
+1 for mimetype='application/json',省去了我寻找相关标题的时间:)有趣的是,我在完全相同的情况下(jQuery文件上传)被困在这个问题上,你的代码在另一方面也帮了我。我最喜欢这个答案。根据我的经验,
Response()
以一种比
make\u Response()
更简单的方式公开mimetype,只需执行
return json.dumps()
就不会设置任何头。
jsonify({'tasks':tasks})
工作得很好这肯定为我节省了很多时间这不再是安全问题,但始终返回dict仍然被认为是最佳实践:
   return jsonify({'ans':bin}), 201