在 Python 和 JavaScript 之间处理 JSON 中的日期时间对象
在 Python 和 JavaScript 之间交换数据时,经常会遇到日期时间对象。为了确保这些对象的无缝序列化和反序列化,可以采用各种方法。
一种推荐的方法是利用 Python 中 json.dumps 的“默认”参数来处理日期时间对象。此参数启用处理程序函数的规范,该函数将日期时间对象转换为可序列化格式。
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)
此方法确保 Python 日期时间对象转换为 ISO 8601 格式,该格式由 JavaScript 标准化和识别。
"2010-04-20T20:08:21.634121"
或者,可以定义更全面的默认处理函数来处理各种对象类型:
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))
此函数检查是否存在 'isoformat' 属性,这在日期时间对象中很常见,并将其转换为可序列化的格式。此外,它还可以根据需要处理其他对象类型。
通过利用这些技术,可以有效地从 Python 序列化日期时间对象并在 JavaScript 中反序列化,从而促进两种语言之间顺利的数据交换。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3