Django: Object of type 'datetime' is not JSON serializable
我正试图在我的会话中保存一个日期。我总是收到错误
如何将我的
1 2 3 | code = social_ticketing_form.cleaned_data['a'] expiry_date = timezone.now() + timezone.timedelta(days=settings.SOCIAL_TICKETING_ATTRIBUTION_WINDOW) request.session[social_ticketing_cookie_name(request.event)] = {'code': code, 'expiry_date': expiry_date} |
要么编写自己的会话序列器,允许您直接对
如果要将其保存为秒,则使用
1 2 3 4 | request.session[social_ticketing_cookie_name(request.event)] = { 'code': code, 'expiry_date': expiry_date.timestamp() } |
您自己的
如果要对
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from datetime import datetime class JSONDateTimeSerializer: @staticmethod def _default(ob): if isinstance(ob, datetime): return {'__datetime__': ob.isoformat()} raise TypeError(type(ob)) @staticmethod def _object_hook(d): if '__datetime__' in d: return datetime.fromisoformat(d['__datetime__']) return d def dumps(self, obj): return json.dumps( obj, separators=(',', ':'), default=self._default ).encode('latin-1') def loads(self, data): return json.loads( data.decode('latin-1'), object_hook=self._object_hook ) |
号
并将
上面使用的是Python3.7中新增的