如何通过 JSON 保持 Python 和 JavaScript 之间的日期时间连续性?

Linda Hamilton
发布: 2024-10-20 19:13:30
原创
557 人浏览过

How to Preserve Datetime Continuity Between Python and JavaScript via JSON?

通过 JSON 保持 Python 和 JavaScript 之间的日期时间连续性

在尝试解决方案之前,让我们首先了解问题。我们在 Python 中有一个 datetime.datetime 对象,需要将其序列化并通过 JSON 发送到 JavaScript。到达后,JavaScript 必须能够将其反序列化回日期时间对象,而不会出现任何扭曲。

为了解决这个难题,json.dumps 中 JSON 的通用“默认”参数提供了一个解决方案。此参数使我们能够为日期时间对象定义自定义序列化处理程序。

以下处理程序巧妙地处理序列化过程:

<code class="python">date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)</code>
登录后复制

应用时,此处理程序将日期时间对象转换为 ISO 8601 格式序列化期间:

<code class="python">json.dumps(datetime.datetime.now(), default=date_handler)
'"2010-04-20T20:08:21.634121"'</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>
登录后复制

此处理程序还会生成带有对象类型和值的改进错误消息,以便更好地调试。包含日期类型可确保日期也得到妥善处理。

以上是如何通过 JSON 保持 Python 和 JavaScript 之间的日期时间连续性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!