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



我有一个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对象?

注意:我有0.12.2 版本的烧瓶

get_json直到版本1.0才添加到烧瓶中的响应对象中。在以前的版本中,您需要使用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"))
# ...

最新更新