当前位置: 首页 > 知识库问答 >
问题:

如何从Flask视图返回dict作为JSON响应?

惠洛华
2023-03-14

我有一个函数,可以使用Pandas分析CSV文件并生成包含摘要信息的编辑器。我想从Flask视图返回结果作为响应。如何返回JSON响应?

@app.route("/summary")
def summary():
    d = make_summary()
    # send it back as json

共有3个答案

朱天逸
2023-03-14

将关键字参数传递给flask。jsonify,它们将作为JSON对象输出。

@app.route('/_get_current_user')
def get_current_user():
    return jsonify(
        username=g.user.username,
        email=g.user.email,
        id=g.user.id
    )
{
    "username": "admin",
    "email": "admin@localhost",
    "id": 42
}

如果你已经有了dict,你可以直接把它作为jsonify(d)传递。

曾嘉荣
2023-03-14

jsonify序列化传递给JSON的数据。如果您想自己序列化数据,可以像jsonify那样,使用status=200mimetype='application/json'构建响应。

from flask import json

@app.route('/summary')
def summary():
    data = make_summary()
    response = app.response_class(
        response=json.dumps(data),
        status=200,
        mimetype='application/json'
    )
    return response
沈伟
2023-03-14

从Flask 1.1.0开始,视图可以直接返回Python dict,Flask将自动调用jsonify

@app.route("/summary")
def summary():
    d = make_summary()
    return d

如果Flask版本低于1.1.0或要返回不同的JSON可序列化对象,请导入并使用jsonify

from flask import jsonify

@app.route("/summary")
def summary():
    d = make_summary()
    return jsonify(d)
 类似资料:
  • 问题内容: 我有一个函数,可使用Pandas分析CSV文件并生成带有摘要信息的字典。我想从Flask视图返回结果作为响应。如何返回JSON响应? 问题答案: 将摘要数据传递给该函数,该函数返回JSON响应。 从Flask 0.11开始,你可以将任何JSON可序列化的类型(不仅是dict)传递为顶级对象。

  • 问题内容: 我有一个函数,可使用Pandas分析CSV文件并生成带有摘要信息的字典。我想从Flask视图返回结果作为响应。如何返回JSON响应? 问题答案: 将摘要数据传递给该函数,该函数返回JSON响应。 从Flask 0.11开始,你可以将任何可序列化的类型(不仅是dict)传递为顶级对象。

  • 问题内容: 例如,此URL: 应该返回一个类型的响应。我有两个静态图片, 如果type为1,则应该返回,否则返回。在烧瓶中怎么做? 问题答案: 你使用类似 发送回或,具体取决于类型查询参数。有关更多信息,请参见函数和对象的文档。

  • 问题内容: 有没有一种方法可以将部分呈现为MVC的JSON响应的一部分返回HTML字符串? 问题答案: PartialViewResult和ViewResult都从ViewResultBase派生,因此相同的方法应该对两者都起作用。 使用上面线程中的代码,您将可以使用:

  • 问题内容: 错误信息: 而我的代码: 并且my-form.html是: 如果我在其中放置一个while循环,它将永远加载。 然后输入比当前页面永久加载的更高的温度。如果我使用上面列出的当前代码,则会出现错误。 问题答案: 以下内容不返回响应: 你必须返回类似或的内容。 这样可以解决问题

  • 问题内容: 我正在将KnockoutJS引入现有的应用程序中。我的计划是修改/利用我们已经创建的现有局部视图,并将其与具有Knockout声明性属性的JS视图模型绑定。当我对某个动作进行AJAX调用时,理想情况下,我希望该动作同时返回部分视图的HTML和JSON对象。然后,我可以用HTML填充div,将JSON转换为Knockout对象并将其绑定到HTML。但是我不知道如何从动作中返回两者。 我需