在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 中反序列化,從而促進兩種語言之間順利的資料交換。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3