首页 > web前端 > js教程 > 如何在 Python 和 JavaScript 之间处理 JSON 交换中的日期时间对象

如何在 Python 和 JavaScript 之间处理 JSON 交换中的日期时间对象

Susan Sarandon
发布: 2024-10-19 17:30:30
原创
584 人浏览过

How to Handle Datetime Objects in JSON Exchange Between Python and JavaScript

在 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>
登录后复制

此函数确保在序列化过程中正确处理不同类型的对象。

附加说明

  • 用于日期时间对象的 ISO 8601 格式是 ISO 8601。
  • 这种方法也可以在 Python 中处理日期对象 (datetime.date)。

以上是如何在 Python 和 JavaScript 之间处理 JSON 交换中的日期时间对象的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板