在项目中需要将类转换成json的格式存储,考虑到比较简单的方式是继承json自带的JSONEncoder,修改其中的内容使其可以将类转换成我需要的json形式。
在官网有找到如下内容:
import json
class ComplexEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, complex):
return {"real": obj.real, "imag": obj.imag}
return json.JSONEncoder.default(self, obj)
tmp = json.dumps(2+1j, cls=ComplexEncoder)
print typeof(tmp)
print ComplexEncoder().encode(2+1j)
输出结果:
{"real": 2.0, "imag": 1.0}