You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask-RESTful使用jsonify返回数据触发TypeError错误求助

问题原因与解决方法

问题根源

Flask-RESTful 的 Resource 视图方法会自动将返回的可序列化对象(比如字典)转换为 JSON 响应,不需要手动调用 jsonify。你当前返回的 jsonify(result) 本身是一个 Flask Response 对象,框架会尝试把这个对象再序列化为 JSON,这就导致了 TypeError: Object of type Response is not JSON serializable 错误。

单独执行 test = jsonify(result), 200 不报错,是因为这只是创建了一个包含 Response 对象和整数的元组,并没有触发 Flask-RESTful 的序列化处理逻辑,只有当这个元组作为视图返回值时,框架才会尝试解析并序列化其中的内容。

解决方法

有两种可行的修正方式:

  1. 直接返回字典和状态码(推荐,符合 Flask-RESTful 的设计逻辑):
class MyClass(Resource):
    def post(self):
        result = my_func()
        return result, 200

框架会自动将 result 字典序列化为 JSON,并设置状态码为 200。

  1. 返回自定义 Response 对象(适用于需要添加响应头等额外配置的场景):
from flask import jsonify

class MyClass(Resource):
    def post(self):
        result = my_func()
        response = jsonify(result)
        response.status_code = 200
        # 可添加额外响应头,比如 response.headers['X-Custom-Header'] = 'value'
        return response

内容的提问来源于stack exchange,提问作者Geo48

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 07:57:02