python, aiohttp, AssertionError: аргумент данных должен быть byte-i sh ( ) - PullRequest
0 голосов
/ 13 января 2020

Я получаю ошибку, показанную в заголовке. Вот обратная трассировка:

2020-01-13T05:03:49.967604+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/aiohttp_debugtoolbar/middlewares.py", line 57, in toolbar_middleware
2020-01-13T05:03:49.967606+00:00 app[web.1]:     return (yield from handler(request))
2020-01-13T05:03:49.967608+00:00 app[web.1]:   File "/app/handlers/utils/web.py", line 139, in inner
2020-01-13T05:03:49.967610+00:00 app[web.1]:     return await func(request, prepare_response, filepath, **func_kwargs)
2020-01-13T05:03:49.967612+00:00 app[web.1]:   File "/app/handlers/csv2html.py", line 37, in csv2html
2020-01-13T05:03:49.967614+00:00 app[web.1]:     await response.write(reader.to_html())
2020-01-13T05:03:49.967616+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/aiohttp/web_response.py", line 416, in write
2020-01-13T05:03:49.967618+00:00 app[web.1]:     "data argument must be byte-ish (%r)" % type(data)
2020-01-13T05:03:49.967620+00:00 app[web.1]: AssertionError: data argument must be byte-ish (<class 'str'>)
Disconnected from log stream. There may be events happening that you do not see here! Attempting to reconnect...
2020-01-13T05:03:49.967602+00:00 app[web.1]:     response = await handler(request)
2020-01-13T05:03:49.967604+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/aiohttp_debugtoolbar/middlewares.py", line 57, in toolbar_middleware
2020-01-13T05:03:49.967606+00:00 app[web.1]:     return (yield from handler(request))
2020-01-13T05:03:49.967608+00:00 app[web.1]:   File "/app/handlers/utils/web.py", line 139, in inner
2020-01-13T05:03:49.967610+00:00 app[web.1]:     return await func(request, prepare_response, filepath, **func_kwargs)
2020-01-13T05:03:49.967612+00:00 app[web.1]:   File "/app/handlers/csv2html.py", line 37, in csv2html
2020-01-13T05:03:49.967614+00:00 app[web.1]:     await response.write(reader.to_html())
2020-01-13T05:03:49.967616+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/aiohttp/web_response.py", line 416, in write
2020-01-13T05:03:49.967618+00:00 app[web.1]:     "data argument must be byte-ish (%r)" % type(data)
2020-01-13T05:03:49.967620+00:00 app[web.1]: AssertionError: data argument must be byte-ish (<class 'str'>)

Приложение представляет собой API для другого приложения. Он использует aiohttp и размещается на heroku. Эта конкретная вызываемая функция должна конвертировать csv в html.

. Я могу показать больше кода, если хотите, но я не думаю, что это необходимо. Поправьте меня если я ошибаюсь. Может кто-нибудь помочь с этим? Заранее спасибо.

1 Ответ

0 голосов
/ 13 января 2020

В строке 37 из /app/handlers/csv2html.py заменить await response.write(reader.to_html()) на await response.write(reader.to_html().encode("utf-8"))

...