datetime.date(2014,4,25)在Django中不是JSON序列化 [英] datetime.date(2014, 4, 25) is not JSON serializable in Django
本文介绍了datetime.date(2014,4,25)在Django中不是JSON序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遵循如何克服datetime。 datetime不是JSON可序列化在python?,但这没有帮助
我尝试过这个代码
code>>>> import datetime
>>>> a = datetime.date(2014,4,25)
>>>>从bson import json_util
>>> b = json.dumps(a,default = json_util.default)
追溯(最近的最后一次调用):
文件< console>,第1行,< module>
文件/usr/lib/python2.7/json/__init__.py,第250行,转储
sort_keys = sort_keys,** kw).encode(obj)
文件 /usr/lib/python2.7/json/encoder.py,第207行,编码
chunks = self.iterencode(o,_one_shot = True)
文件/ usr / lib / python2 7 / json / encoder.py,第270行,iterencode
返回_iterencode(o,0)
文件/home/.../python2.7/site-packages/bson/json_util。 py,第256行,默认
raise TypeError(%r不是JSON可序列化%obj)
TypeError:datetime.date(2014,4,25)不是JSON可序列化
有人可以帮我一个datetime.date
serializer和deserializer解决方案您也可以这样做:
如果hasattr(obj,'isoformat')else obj
print json.dumps(data,default = date_handler)
从这里。
根据JFSebastian评论更新
def date_handler(obj):
如果hasattr(obj, isoformat'):
return obj.isoformat()
else:
raise TypeError
print json.dumps(data,default = date_handler)
I followed How to overcome "datetime.datetime not JSON serializable" in python? but this is not helping
I tried this code
>>> import datetime >>> a =datetime.date(2014, 4, 25) >>> from bson import json_util >>> b = json.dumps(a,default = json_util.default) Traceback (most recent call last): File "<console>", line 1, in <module> File "/usr/lib/python2.7/json/__init__.py", line 250, in dumps sort_keys=sort_keys, **kw).encode(obj) File "/usr/lib/python2.7/json/encoder.py", line 207, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode return _iterencode(o, 0) File "/home/.../python2.7/site-packages/bson/json_util.py", line 256, in default raise TypeError("%r is not JSON serializable" % obj) TypeError: datetime.date(2014, 4, 25) is not JSON serializable
Can somebody help me with a
datetime.date
serializer and deserializer.解决方案You can also do this:
def date_handler(obj): return obj.isoformat() if hasattr(obj, 'isoformat') else obj print json.dumps(data, default=date_handler)
From here.
Update as per J.F.Sebastian comment
def date_handler(obj): if hasattr(obj, 'isoformat'): return obj.isoformat() else: raise TypeError print json.dumps(data, default=date_handler)
这篇关于datetime.date(2014,4,25)在Django中不是JSON序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文