运行注册站点时出现builtin_function_or_method对象无法JSON序列化错误是什么含义
报错含义解析
TypeError: Object of type builtin_function_or_method is not JSON serializable
该报错是Python JSON序列化逻辑抛出的类型错误,核心含义如下:
- 代码执行了
json.dumps()、json.dump()或框架封装的JSON序列化逻辑,尝试将Python数据结构转换为JSON格式字符串 - 待序列化的Python数据结构中包含了内置函数/内置方法类型的对象,JSON协议本身不支持对这类对象的序列化操作
- JSON原生仅支持序列化字符串、整数、浮点数、布尔值、
None、列表、元组、键为字符串的字典这几类基础数据类型
常见触发原因
- 待序列化结构中写入了未调用的内置方法引用,比如写了
datetime.now而非调用后的值datetime.now() - 注册站点的接口响应、用户数据存储等逻辑中,误把方法对象直接赋值给了需要序列化为JSON的字段
排查方案
- 定位代码中执行JSON序列化的位置,打印待序列化的完整对象,定位其中的函数/方法引用字段
- 排查到对应字段后,将方法调用后得到的实际值写入序列化结构即可解决问题
内容的提问来源于stack exchange,提问作者user16217445
相关产品推荐
相关产品推荐

