python - 如何读取 python flask jsonify 响应对象

标签 python json flask

我有一个 python 函数,它返回 Flask jsonify 对象。当我尝试使用 get_json() 甚至 json() 读取这个返回的 json 对象时,它会抛出错误。这是我的代码:

from flask import jsonify

def funct1(par1):
    if par1 == 'Hi':
       return jsonify(result=1,msg='Hello')
    else:
       return jsonify(result=0,msg='Sorry')

def func2():
    response = funct1('Hi')
    rsp_js = response.get_json() # This throws error
    print(rsp_js)

当我在上面执行时,我收到错误消息,因为 Response object has no attribute get_json。我也尝试了 json() 但得到了同样的错误。如何读取返回的 jsonify 对象?

注意:我的 flask 版本是 0.12.2

最佳答案

get_json 直到 version 1.0 才被添加到 Flask 中的响应对象中.在之前的版本中,需要使用get_data:

import json
json.loads(response.get_data().decode("utf-8"))

话虽如此,我要提醒您不要直接从其他函数调用路由方法(测试除外),或从非路由方法返回响应对象。

如果您尝试测试此方法,您应该考虑使用 test_client :

with app.test_client() as client:
    json.loads(client.get("the/url").get_data().decode("utf-8"))
    # ...

关于python - 如何读取 python flask jsonify 响应对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51563867/

相关文章:

python - 减少函数调用

mysql - LimeSurvey 使用数据库中的 JSON 字符串

javascript - 数组到动态函数: Use eval or not?

python - object.__setattr__() 和直接设置有什么区别吗?

flask - 如何在 WTForms 中创建单个复选框?

python - Selenium "Unable to find a matching set of capabilities"尽管驱动程序位于/usr/local/bin

python - 如何在Python中获取除第一个单词之外的所有字符串

python - Flask - 从函数获取路由 URL

python - XlsxWriter 中出现意外的单元格格式化行为

javascript - 为什么我的 Service Worker 的推送事件数据/负载为空?