python json序列化扩展,不支持的类型

python

import json

from 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

回到顶部