指定 ujson 如何处理自定义对象的序列化?
Specifying how ujson handles serialization of a custom object?
我有一个自定义对象,我想使用 python 的记录器模块进行记录。
我用字典记录它:
logger.info({
'message': 'something happened',
'object': my_custom_object,
})
问题是记录器使用 ujson.dumps()
将输入序列化为 logger.info()
。
ujson.dumps()
将 my_custom_object 转换为实例变量名称列表。这不是很有帮助。我想指定一个自定义 toJson
或 toDict
方法,以便在尝试序列化此方法时使用。
这可能吗?
有点像您可以指定 __str__
方法,任何时候 python 尝试将您的对象转换为字符串,它都会调用该方法。
显然,您 实际上可以 在对象上实施 toDict
方法,它会起作用。
我有一个自定义对象,我想使用 python 的记录器模块进行记录。
我用字典记录它:
logger.info({
'message': 'something happened',
'object': my_custom_object,
})
问题是记录器使用 ujson.dumps()
将输入序列化为 logger.info()
。
ujson.dumps()
将 my_custom_object 转换为实例变量名称列表。这不是很有帮助。我想指定一个自定义 toJson
或 toDict
方法,以便在尝试序列化此方法时使用。
这可能吗?
有点像您可以指定 __str__
方法,任何时候 python 尝试将您的对象转换为字符串,它都会调用该方法。
显然,您 实际上可以 在对象上实施 toDict
方法,它会起作用。