首頁 >web前端 >js教程 >如何在 Python 和 JavaScript 之間序列化和反序列化 JSON 中的日期時間對象

如何在 Python 和 JavaScript 之間序列化和反序列化 JSON 中的日期時間對象

Linda Hamilton
Linda Hamilton原創
2024-10-19 17:28:301086瀏覽

How to Serialize and Deserialize Datetime Objects in JSON Between Python and JavaScript

在Python 和JavaScript 之間處理JSON 中的日期時間物件

在Python 和JavaScript 之間交換資料時,經常會遇到到日期時間對象。為了確保這些物件的無縫序列化和反序列化,可以採用各種方法。

一個建議的方法是利用 Python 中 json.dumps 的「預設」參數來處理日期時間物件。此參數啟用處理程序函數的規範,該函數將日期時間物件轉換為可序列化的格式。

<code class="python">from datetime import datetime

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json_str = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_str)</code>

此方法可確保 Python 日期時間物件轉換為 ISO 8601 格式,該格式是 JavaScript 標準化和識別的。

"2010-04-20T20:08:21.634121"

或者,可以定義更全面的預設處理函數來處理各種物件類型:

<code class="python">def handler(obj):
    if hasattr(obj, 'isoformat'):
        return obj.isoformat()
    elif isinstance(obj, ...):
        return ...
    else:
        raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))</code>

此函數檢查是否存在「isoformat」屬性,即常見於日期時間對象,並將其轉換為可序列化格式。此外,它還可以根據需要處理其他物件類型。

透過利用這些技術,可以有效地從 Python 序列化日期時間物件並在 JavaScript 中反序列化,從而促進兩種語言之間的順利資料交換。

以上是如何在 Python 和 JavaScript 之間序列化和反序列化 JSON 中的日期時間對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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