Python JSON编码器 - 默认方法

时间:2017-09-01 18:18:20

标签: python json

我想让我的类JSON序列化,并尝试使用DevTools类扩展它。但是,为什么JSONEncoder函数在它应该是我的类的方法时采用default参数。

我想序列化我的类对象,而不是传递给方法的第三个对象?

在子类中实现此方法,使其返回o的可序列化对象,或调用基本实现(以引发TypeError)。

o

1 个答案:

答案 0 :(得分:0)

你应该这样做:

>>> import json
>>> class ComplexEncoder(json.JSONEncoder):
...     def default(self, obj):
...         if isinstance(obj, complex):
...             return [obj.real, obj.imag]
...         # Let the base class default method raise the TypeError
...         return json.JSONEncoder.default(self, obj)

也许你在最后一次回归时忘记了json。
看看json doc