我想使用 JSON 从 Python 发送一个序列化形式的 datetime.datetime 对象并使用 JSON 在 JavaScript 中反序列化。最好的方法是什么?
最佳答案
您可以将 'default' 参数添加到 json.dumps 以处理此问题:
date_handler = lambda obj: (
obj.isoformat()
if isinstance(obj, (datetime.datetime, datetime.date))
else None
)
json.dumps(datetime.datetime.now(), default=date_handler)
'"2010-04-20T20:08:21.634121"'
这是ISO 8601格式。
更全面的默认处理函数:
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))
更新:添加了类型和值的输出。
更新:也处理日期
关于javascript - Python 和 JavaScript 之间的 JSON 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/455580/