首頁  >  文章  >  後端開發  >  如何透過 JSON 保持 Python 和 JavaScript 之間的日期時間連續性?

如何透過 JSON 保持 Python 和 JavaScript 之間的日期時間連續性?

Linda Hamilton
Linda Hamilton原創
2024-10-20 19:13:30559瀏覽

How to Preserve Datetime Continuity Between Python and JavaScript via JSON?

透過 JSON 保持 Python 和 JavaScript 之間的日期時間連續性

在嘗試解決方案之前,讓我們先了解問題。我們在 Python 中有一個 datetime.datetime 對象,需要將其序列化並透過 JSON 傳送到 JavaScript。到達後,JavaScript 必須能夠將其反序列化回日期時間對象,而不會出現任何扭曲。

為了解決這個難題,json.dumps 中 JSON 的通用「預設」參數提供了一個解決方案。此參數使我們能夠為日期時間物件定義自訂序列化處理程序。

以下處理程序巧妙地處理序列化過程:

<code class="python">date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)</code>

應用時,此處理程序將日期時間物件轉換為ISO 8601 格式序列化期間:

<code class="python">json.dumps(datetime.datetime.now(), default=date_handler)
'"2010-04-20T20:08:21.634121"'</code>

對於更複雜的場景,建議使用綜合處理程序:

<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>

此處理程序也會產生帶有物件類型和值的改進錯誤訊息,以便更好地偵錯。包含日期類型可確保日期也能妥善處理。

以上是如何透過 JSON 保持 Python 和 JavaScript 之間的日期時間連續性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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