基本问题是JSON编码器json.dumps()默认情况下,只知道如何序列化有限内置类型的对象类型集。
一个解决方案是让类继承JSONEncoder然后实现JSONEncoder.default()函数,并使该函数为类发出正确的JSON。
一个简单的解决方案是在.__dict__那个实例调用json.dumps()。

`import json as default_json
from json.encoder import JSONEncoder
from .response import BaseResponse

class JsonEncoder(JSONEncoder): #继承JSONEncoder
def default(self, o): #写default 方法
if isinstance(o,BaseResponse):
return o.dict
return JSONEncoder.default(self,o)
class Json(object): #自定义的Json
@staticmethod
def dumps(response,ensure_ascii=True): #自定义的dumps
return default_json.dumps(response,ensure_ascii=ensure_ascii,cls=JsonEncoder)

自定义的dumps返回系统(json)的dumps方法,但是cls是扩展的JsonEncoder`

posted on 2020-06-07 10:44  莫欺少年穷丶  阅读(54)  评论(0)    收藏  举报