【问题标题】:TypeError: <Response 36 bytes [200 OK]> is not JSON serializableTypeError: <Response 36 bytes [200 OK]> is not JSON serializable
【发布时间】:2017-05-10 04:46:44
【问题描述】:

我正在使用 restful flask 编写 web 服务。 下面的代码给了我这个错误 - TypeError: is not JSON serializable

from flask import jsonify
from flask_restful import Resource
class Recipe(Resource):
   def get(self):
      return jsonify({"status": "ok", "data": ""}), 200

这段代码如何正常工作

from flask import jsonify
from flask_restful import Resource
class Recipe(Resource):
   def get(self):
      return jsonify({"status": "ok", "data": ""})

下面的代码也可以工作

from flask import jsonify
from flask_restful import Resource
class Recipe(Resource):
def get(self):
   return {"status": "ok", "data": ""},200

我注意到当我同时使用 jsonify 和响应代码时出现错误,我需要使用 jsonfy 因为我将发送对象作为响应。

【问题讨论】:

    标签: python flask flask-restful


    【解决方案1】:

    找到解决方案 - Flask 有一个名为 ma​​ke_response

    的函数
    from flask import jsonify, make_response
    
    class Recipe(Resource):
       def get(self):
       return make_response(jsonify({"status": "ok", "data": ""}), 201)
    

    【讨论】:

    • 你如何从客户端的响应中获取这个 json?以上返回&lt;Response 36 bytes [201 CREATED]&gt;。我怎样才能从中得到 dict 呢? ` 即 res['status'] =&gt; 'ok' json.loads(res) 失败
    猜你喜欢
    • 1970-01-01
    • 2013-11-25
    • 2019-05-06
    • 2019-10-09
    • 2021-03-02
    • 1970-01-01
    • 2021-09-19
    • 2014-10-14
    • 1970-01-01
    相关资源
    最近更新 更多