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

一、json默认的数据类型

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

二、dumps源码

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

三、自定义json数据类型

面向对象应用之扩展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"}

 

上一篇:odoo开发笔记 -- 当前时间&时间运算相关


下一篇:d27网络编程