使用 JSON 在 Python 和 JavaScript 之间传输数据时,应特别注意处理 datetime 对象。本文探讨了在 Python 中序列化日期时间对象并在 JavaScript 中反序列化它们的最佳方法。
利用 Python 的 json.dumps 函数中的默认参数来处理日期时间序列化:
<code class="python">date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None ) json.dumps(datetime.datetime.now(), default=date_handler) # Output: '"2010-04-20T20:08:21.634121"' (ISO 8601 format)</code>
在 JavaScript 中,使用 JSON.parse 函数并使用自定义 reviver 函数处理反序列化:
<code class="javascript">let date = JSON.parse(jsonString, (key, value) => { if (typeof value === 'string' && value.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/)) { return new Date(value); } return value; });</code>
可以定义更具包容性的默认处理函数以适应各种数据类型:
<code class="python">import datetime def handler(obj): if hasattr(obj, 'isoformat'): return obj.isoformat() elif isinstance(obj, datetime.date): return str(obj) # Convert to string for date objects elif isinstance(obj, ...): return ... # Handle other types as needed else: raise TypeError('Cannot serialize object of type {} with value {}'.format(type(obj), repr(obj)))</code>
改进的处理程序包括:
以上是如何处理 Python 和 JavaScript 之间 JSON 转换中的日期时间对象?的详细内容。更多信息请关注PHP中文网其他相关文章!