07 面向对象应用之扩展json数据类型

一、json默认的数据类型

二、dumps源码

三、自定义json数据类型

 

import json
from datetime import datetime, date

print(datetime.today())  # 2019-08-06 19:00:30.485567
print(date.today())  # 2019-08-06
"""
TypeError: Object of type 'datetime' is not JSON serializable
"""

class MyJson(json.JSONEncoder):
    def default(self, o):
        if isinstance(o, datetime):
            return o.strftime('%Y-%m-%d %X')
        elif isinstance(o, date):
            return o.strftime('%Y-%m-%d')
        else:
            return super().default(self, o)

res = {'c1': datetime.today(), 'c2': date.today()}
print(json.dumps(res, cls=MyJson))  # {"c1": "2019-08-06 19:00:30", "c2": "2019-08-06"}
posted @ 2019-08-06 19:58  www.pu  Views(273)  Comments(0Edit  收藏  举报