如何读取python flask jsonify响应对象

use*_*886 4 python json flask

我有一个python返回Flask jsonify对象的函数。当我尝试读取这个返回的json对象时get_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)
Run Code Online (Sandbox Code Playgroud)

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

注意:我有烧瓶版本 0.12.2

Mat*_*ory 7

get_json直到版本 1.0才被添加到烧瓶中的响应对象。在以前的版本中,您需要使用get_data

import json
json.loads(response.get_data().decode("utf-8"))
Run Code Online (Sandbox Code Playgroud)

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

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

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