」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Python 和 JavaScript 之間序列化和反序列化 JSON 中的日期時間對象

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

發佈於2024-11-08
瀏覽:230

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

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

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

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

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)

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

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

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

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

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

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

版本聲明 本文轉載於:1729330037如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3