首页 > web前端 > js教程 > 正文

如何在 Python 和 JavaScript 之间序列化和反序列化 JSON 中的日期时间对象

Linda Hamilton
发布: 2024-10-19 17:28:30
原创
970 人浏览过

How to Serialize and Deserialize Datetime Objects in JSON Between Python and JavaScript

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

在 Python 和 JavaScript 之间交换数据时,经常会遇到日期时间对象。为了确保这些对象的无缝序列化和反序列化,可以采用各种方法。

一种推荐的方法是利用 Python 中 json.dumps 的“默认”参数来处理日期时间对象。此参数启用处理程序函数的规范,该函数将日期时间对象转换为可序列化的格式。

<code class="python">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)</code>
登录后复制

此方法可确保 Python 日期时间对象转换为 ISO 8601 格式,该格式是 JavaScript 标准化和识别的。

"2010-04-20T20:08:21.634121"
登录后复制

或者,可以定义更全面的默认处理函数来处理各种对象类型:

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

此函数检查是否存在“isoformat”属性,即常见于日期时间对象,并将其转换为可序列化格式。此外,它还可以根据需要处理其他对象类型。

通过利用这些技术,可以有效地从 Python 序列化日期时间对象并在 JavaScript 中反序列化,从而促进两种语言之间的顺利数据交换。

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

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