自定义json发送类和对象
2018-06-08 本文已影响42人
两分与桥
# json 默认不能格式化类和实例,必须自己定制
import json
from json.encoder import JSONEncoder
class JsonCustomEncoder(JSONEncoder):
def default(self, o):
if isinstance(o,Base): # Base 是类的名称
return o.__dict__ # 类的 __dict__ 返回的是{'status': True, 'data': 'tiger'}
return JSONEncoder.default(self,o)
class Base():
def __init__(self):
self.status = True
self.data = 'tiger'
dic = {
'k1': 'talent',
'k2': Base(),
}
print(json.dumps(dic,cls=JsonCustomEncoder) # cls 有种回调函数的意思