大爱

Python和JavaScript JSON datetime格式转换方法

2016-03-09

最近在用Python调用Java Hessian接口,中间涉及到传递的参数中,有datatime格式时,json转换报错的问题。
在stackoverflow上找到了解决方法。

需要在json.dumps方法中添加自定义的 ‘default’参数,代码如下:

1
2
3
4
5
6
7
8
date_handler = lambda obj: (
obj.isoformat()
if isinstance(obj, datetime.datetime)
or isinstance(obj, datetime.date)
else None
)
json.dumps(datetime.datetime.now(), default=date_handler)
'"2010-04-20T20:08:21.634121"'

另外一个更全面的默认处理函数如下:

1
2
3
4
5
6
7
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))
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章