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