使用自定义编码器将复杂 Python 对象序列化为 JSON
Python 的 json 模块默认仅支持字典、列表、元组、字符串、整数、浮点数、布尔值和 None。其他类型会引发 TypeError,除非通过 default 参数或 JSONEncoder 子类进行拦截。为实现往返保真,解码侧必须提供匹配的 object_hook 来从标记字典或字符串重建原始类型。本文详细解释了如何处理复杂数字、日期时间、路径和用户定义类,并比较了函数与子类两种方法的适用场景。
json / serialization / JSONEncoder / default / object_hook / python-standard-library / datetime / complex