【发布时间】:2022-11-10 18:41:44
【问题描述】:
我想将类实例序列化为 JSON,但我的类包含 UUID 和 datetime 成员,所以我得到了这个 TypeError。
TypeError:日期时间类型的对象不是 JSON 可序列化的
通过为每个成员创建类,我成功地解决了每个问题(UUID 和日期时间问题):
class DTEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime): return str(obj) return json.JSONEncoder.default(self, obj) class UUIDEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, uuid.UUID): # if the obj is uuid, we simply return the value of uuid return obj.hex return json.JSONEncoder.default(self, obj)我使用这样的类:
convertedReadObject=json.dumps(ReadObject,cls=UUIDEncoder)ReadObject 具有 UUID 成员。
但现在我需要这样做,但我需要将两个类传递给
cls参数。
【问题讨论】:
-
内置 json 库不支持序列化日期时间