如何使用 JSON 在 Python 和 JavaScript 之間轉換日期時間對象

DDD
發布: 2024-10-20 19:15:02
原創
564 人瀏覽過

How to Convert Datetime Objects Between Python and JavaScript Using JSON

使用JSON 在Python 和JavaScript 之間轉換日期時間物件

在資料序列化和反序列化領域,Python 和JavaJava間日期時間物件的交換通過JSON 的JavaScript 可能會帶來挑戰。讓我們深入研究如何解決這個問題,並提出處理這種轉換的最佳方法。

Python 中的序列化

將 datetime.datetime 物件從 Python 序列化為JSON,我們可以使用Python內建的json.dumps()函數。但是,為了確保正確處理日期時間對象,我們需要提供自訂“預設”參數。以下是範例程式碼片段:

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

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)

json_string = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_string)  # Output: "2010-04-20T20:08:21.634121"</code>
登入後複製

此方法可確保日期時間物件以 ISO 8601 格式序列化,該格式廣泛支援日期和時間表示。

JavaScript 中的反序列化

如果您使用處理JSON 解析的JavaScript 庫,例如JSON.parse(),它會自動將ISO 8601 字串反序列化為Date 物件。這是它在JavaScript 中的樣子:

<code class="js">const json_object = JSON.parse(json_string);
const js_date = new Date(json_object);  // Converted to JavaScript Date object</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>
登入後複製

透過利用此方法,您可以在序列化期間輕鬆處理各種物件類型。

附加說明

  • ISO 8601 是以機器可讀格式表示日期和時間的標準。
  • 自訂處理程序的輸出應與反序列化器期望的格式相符。
  • 了解更多信息,請參考 Python 的 json.dumps() 和 JavaScript 的 JSON.parse() 文件。

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

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!