aio-libs / aio-libs/aiohttp-session

Support custom JSON encoder/decoder

未关闭
#30 15 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
245
派生
91
平均合并
2 分钟
30 天内合并 PR
4

描述

When i try do

``` python
session = yield from get_session(self.request)
session['user'] = user
```

with user is a document of mongo, my program occur a error:

```
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/aiohttp/server.py", line 266, in start
yield from self.handle_request(message, payload)
File "/usr/local/lib/python3.4/dist-packages/aiohttp/web.py", line 90, in handle_request
resp = yield from handler(request)
File "/usr/local/lib/python3.4/dist-packages/aiohttp_session/__init__.py", line 144, in middleware
yield from storage.save_session(request, response, session)
File "/usr/lib/python3.4/asyncio/coroutines.py", line 141, in coro
res = func(*args, **kw)
File "/usr/local/lib/python3.4/dist-packages/aiohttp_session/cookie_storage.py", line 52, in save_session
self._get_session_data(session)
File "/usr/lib/python3.4/json/__init__.py", line 230, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python3.4/json/encoder.py", line 192, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.4/json/encoder.py", line 250, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.4/json/encoder.py", line 173, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: ObjectId('56d07ade0686372f8e45b3f1') is not JSON serializable
```
######

How do i replace 'json' encoder with 'bson.json_until' encoder?
https://github.com/aio-libs/aiohttp_session/blob/master/aiohttp_session/cookie_storage.py#L51

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。