克服 datetime.datetime 的 JSON 序列化問題
在使用包含日期時間物件的 Python 字典(例如example['somedate)的過程中'],當嘗試將字典序列化為JSON:
TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable
此問題的主要解決方案在於提供自定義序列化函數來處理日期時間對象。一種流行的方法是使用 json.dumps() 函數的預設參數,該函數接受一個將物件作為輸入並傳回可序列化表示的函數。
在這種情況下,一個簡單的實作可以是如下:
def default(obj): if isinstance(obj, datetime.datetime): return str(obj) # Other logic to handle other types (if needed) json_string = json.dumps(sample, default=default)
此函數在序列化之前將日期時間物件轉換為字串表示形式。或者,您可以利用 Python 的內建 ctime() 方法:
sample['somedate'] = sample['somedate'].ctime() json_string = json.dumps(sample)
此方法將日期時間物件轉換為人類可讀的字串,該字串可以序列化為字典的一部分。
以上是如何解決 Python 日期時間物件的 JSON 序列化錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!