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

Flask-Restful返回200状态码时出现对象不可序列化错误求助

问题排查与解决方案

核心问题

报错TypeError: Object of type function is not JSON serializable的直接原因是返回的响应数据中包含了无法被JSON序列化的函数对象。返回400状态码时能正常运行,是因为所有400的响应都是纯字符串键值对的字典,JSON可以直接处理。

代码中的明显错误

看代码最后一行的返回语句:

return {"mes":, "id": str(new_user.id)}, 200

这里存在语法错误:"mes"键后面没有对应的值,这种写法在Python中是无效的。如果是笔误(比如原本想返回成功提示),这种错误会导致Python解析时出现异常,甚至意外引入函数对象(比如不小心把某个方法名写在这里而没有加括号调用),最终触发JSON序列化失败。

修复步骤

  1. 修正返回语句的语法错误,补充合法的可序列化值,比如成功提示字符串:
    return {"msg": "User created successfully", "id": str(new_user.id)}, 200
    
  2. 检查返回数据的所有值,确保没有包含函数、未序列化的模型对象等不可JSON序列化的类型。当前返回的只有字符串类型的id和提示信息,修正后即可正常序列化。

关于CORS的误解

报错栈中出现flask_cors相关代码,只是因为CORS扩展在处理响应时触发了JSON序列化流程,CORS并不是问题根源,真正的问题出在返回的响应数据本身。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:31:23