首頁 >後端開發 >Python教學 >如何解決 Python 日期時間物件的 JSON 序列化錯誤?

如何解決 Python 日期時間物件的 JSON 序列化錯誤?

Patricia Arquette
Patricia Arquette原創
2024-12-04 22:06:151032瀏覽

How Do I Solve JSON Serialization Errors with Python's datetime Objects?

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

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