python json序列化扩展,不支持的类型
import jsonfrom datetime import datetime
class MyClass:
def __init__(self, name):
self.name = name
class JsonEncodeExtend(json.JSONEncoder):
def default(self, o):
"""
json序列化时,会将不支持的类型传入default方法,
我们可以在方法内部判断值的类型,然后转成字符串返回
注意:只会传入值,不会传入key
:param o:
:return:
"""
if isinstance(o, datetime):
return o.strftime('%Y-%m-%d %H:%M:%S')
if isinstance(o, MyClass):
return o.name
if __name__ == '__main__':
obj = MyClass('杜子腾')
now = datetime.today()
# 默认json序列化不支持 自定义类,和datetime,我们可以通过cls参数扩展让他支持
dic = {'a': 1, 'b': 2, 'obj': obj, 'now': now}
s = json.dumps(dic, cls=JsonEncodeExtend)
print(s)
以上是 python json序列化扩展,不支持的类型 的全部内容, 来源链接: utcz.com/z/388363.html