字定义JSON序列化支持datetime格式序列化
由于json.dumps无法处理datetime日期,所以可以通过自定义处理器来做扩展,如:
import jsonfrom datetime import datefrom datetime import datetimeclass CustomEncoder(json.JSONEncoder): ???def default(self, field): ???????# 自定义部分 ???????# return 定义的strftime ???????if isinstance(field, datetime): ???????????return field.strftime('%Y-%m-%d %H:%M:%S') ???????elif isinstance(field, date): ???????????return field.strftime('%Y-%m-%d') ???????else: ???????????return json.JSONEncoder.default(self, field)if __name__ == '__main__': ???dic = { ???????'k1': 'v1', ???????'k2': 123, ???????'ctime': datetime.now() ???} ???# 调用方法 json.dumps(dic变量, cls=CustomEncoder) ???ds = json.dumps(dic, cls=CustomEncoder) ???print(ds)
输出:
{"k1": "v1", "k2": 123, "ctime": "2018-01-04 14:53:13"}