在前后端交互中,json序列化是非常常見的一種交互方式。而對于一些需要對時間進行操作的數據,date序列化為json也是非常必要的。下面我們就來看看如何將date序列化為json。
import json import datetime class DateEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime.datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(obj, datetime.date): return obj.strftime('%Y-%m-%d') else: return json.JSONEncoder.default(self, obj) data = { 'name': 'Tom', 'age': 18, 'birthday': datetime.datetime(2003, 5, 23, 8, 30, 10), 'register_date': datetime.date(2021, 9, 1) } json_data = json.dumps(data, cls=DateEncoder, ensure_ascii=False) print(json_data)
上面的例子中,我們首先定義了一個DateEncoder類繼承于json.JSONEncoder。然后在該類中,我們定義了一個default方法來對不同類型的數據進行序列化處理。當數據類型為datetime或date時,我們使用strftime方法將其轉化為字符串。注意,在進行json序列化操作時,我們使用了cls參數來指定我們自定義的DateEncoder。
最后,我們將包含date數據的字典data進行json序列化,得到了最終的json_data。可以看到,序列化后的數據中,我們的日期數據已經被轉化為字符串格式的日期。