【问题标题】:how to read python flask jsonify response object如何读取python烧瓶jsonify响应对象
【发布时间】:2019-01-04 22:15:30
【问题描述】:

我有一个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 只是flask 1.0 及以上版本的响应对象上的一个方法,在0.12 中不可用
  • @MatthewStory 我有烧瓶版本 0.12.2。该版本的语法是什么?
  • 在此处查看我的答案。

标签: python json flask


【解决方案1】:

get_json 直到version 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"))
    # ...

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 2022-10-18
    • 1970-01-01
    • 2021-12-26
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    相关资源
    最近更新 更多