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

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

Barbara Streisand
發布: 2024-12-11 01:58:13
原創
534 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板