在 Python 和 JavaScript 之间处理 JSON 交换中的日期时间对象
使用 JSON 在 Python 和 JavaScript 之间交换日期时间对象时,存在一个挑战两种语言表示日期和时间的不同方式。本文介绍了此任务的最佳实践。
Python 到 JavaScript 的转换
要在 Python 中序列化 datetime.datetime 对象以进行 JSON 传输,请使用 '具有自定义日期处理函数的 json.dumps 函数的 default' 参数:
<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)</code>
此函数返回日期时间对象的 ISO 8601 格式,这是广泛接受的日期和时间表示标准。
JavaScript 到 Python 的转换
在 JavaScript 中,您可以使用自定义日期恢复函数反序列化接收到的 JSON 字符串。此函数将解析 ISO 8601 字符串并重建日期时间对象:
<code class="javascript">let date_reviver = date => new Date(date); JSON.parse(json_string, date_reviver);</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>
此函数确保在序列化过程中正确处理不同类型的对象。
附加说明
以上是如何在 Python 和 JavaScript 之间处理 JSON 交换中的日期时间对象的详细内容。更多信息请关注PHP中文网其他相关文章!