克服「datetime.datetime not JSON可序列化」錯誤
序列化包含日期時間物件的Python字典時,例如提供的在範例中,可能會發生錯誤:TypeError: datetime.datetime is not JSON
解決方案:
解決此問題的一種方法是在將字典序列化為 JSON 時指定自訂預設函數。此函數將處理不可序列化物件(例如日期時間物件)轉換為 JSON 相容格式。
import json sample = {} sample['title'] = "String" sample['somedate'] = datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) def datetime_handler(x): if isinstance(x, datetime.datetime): return x.isoformat() raise TypeError("Unknown type") json_string = json.dumps(sample, default=datetime_handler)
在此解決方案中,定義了 datetime_handler 函數以將日期時間物件轉換為字串表示形式使用 isoformat() 方法。然後可以在反序列化過程中適當處理此字串表示形式。
透過提供這樣的自訂預設函數,您可以成功地將包含日期時間物件的字典轉換為 JSON 可序列化格式。
以上是如何解決Python中的「datetime.datetime不是JSON可序列化」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!