首頁 >後端開發 >Python教學 >如何解決Python中的「datetime.datetime不是JSON可序列化」錯誤?

如何解決Python中的「datetime.datetime不是JSON可序列化」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-12-11 01:58:13520瀏覽

How to Solve the

克服「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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn