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

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

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

How to Handle Datetime Objects in JSON Conversions Between Python and JavaScript?

Python 和 JavaScript 之间的 JSON datetime 转换

使用 JSON 在 Python 和 JavaScript 之间传输数据时,应特别注意处理 datetime 对象。本文探讨了在 Python 中序列化日期时间对象并在 JavaScript 中反序列化它们的最佳方法。

Python 中的序列化

利用 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 中的反序列化

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

Python 中的综合默认处理程序

可以定义更具包容性的默认处理函数以适应各种数据类型:

<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中文网其他相关文章!

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