字定義JSON序列化支持datetime格式序列化
阿新 • • 發佈:2018-01-04
cls else span elif () == logs json序列化 序列化
字定義JSON序列化支持datetime格式序列化
由於json.dumps無法處理datetime日期,所以可以通過自定義處理器來做擴展,如:
import json
from datetime import date
from datetime import datetime
class 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"}
字定義JSON序列化支持datetime格式序列化