【发布时间】:2014-09-05 09:41:57
【问题描述】:
我想知道是否有像 __sleep() magic function(来自 PHP)这样的东西用 Python 实现。
我遇到了一个类的问题,Python 说它不是 JSON 可序列化的,我想从类中的魔术方法返回一个简单的字典,以便我的一个库可以成功调用 json.dumps on它。 (我无法控制执行序列化的代码行,正如我所说,它是在库中完成的)
【问题讨论】:
-
你能修改它或影响传递给
json.dumps的obj吗? -
@SimeonVisser 是的,这是我创建的自定义对象。
-
库是否需要与您的对象进行交互,还是只是
json.dumps它?在后一种情况下,您始终可以在将对象提供给库之前将其转换为可转储的对象。 -
看看这里:stackoverflow.com/questions/3768895/… 接受的答案建议使用 JSONEncoder。也许它会帮助你编码你的对象。您可以将此 JSONEncoder 子类作为自定义类的成员
-
@Duncan 这就是我最终所做的。在我的对象上创建了一个
to_dict方法,并将其作为参数传递给进行编码的方法,另一方面,我正在从字典中填充该类的一个新实例。如果您愿意发表评论作为答案,我很乐意接受。
标签: python serialization