Запрос API от пользовательского интерфейса выдает «Предоставленные данные не имеют типа байтов», когда я переключился на python3 - PullRequest
1 голос
/ 26 марта 2020

При переносе кода с python2 .7 на 3.7 я сталкиваюсь с проблемой ниже. Когда я нажимаю на любой запрос из пользовательского интерфейса, как показано ниже.

enter image description here

Когда я просматриваю логи. Я могу напечатать ответ json до оператора возврата, за которым следует ошибка 500. Ниже приведен мой фрагмент кода.

@app.route('/policy_count',methods=['GET'])
def wanhealth_policies()
    response = {'total': 25, 'offset':10}
    response = jsonify(status='success', result=response)
    print("RESPONSE:::::::::",response)
    return response

ОШИБКА: webapp_sa_wh: исключение при / policy_count [GET]
Трассировка (последний последний вызов):
Файл "home / ENV / lib / python3 .7 /site-packages/flask/app.py ", строка 1817, в wsgi_app
response = self.full_dispatch_request ()
Файл" home / ENV / lib / python3 .7 / site-packages / flask / app.py ", строка 1479, в full_dispatch_request
response = self.process_response (response)
Файл" home / ENV / lib / python3 .7 / site-packages / flask / app.py ", строка 1693, в process_response
self.save_session (ctx.session, response)
Файл "home / ENV / lib / python3 .7 / site-packages / flask / app.py", строка 837, в save_session
return self.session_interface.save_session (self, session, response) Файл "home / ENV / lib / python3 .7 / site-packages / flask_kvsession / init .py", строка 193, в save_session
store.put (session.sid_s, data, ttl)
Файл "home / ENV / lib / python3 .7 / site-packages / simplekv / decorator.py", строка 87, на месте
self._dstore.put (self._map_key (ключ), * args, ** kwargs))
Файл "home / ENV / lib / python3 .7 / site-packages / simplekv / init .py", строка 424, на месте
повысить IOError ("Предоставленные данные не Тип байтов ")
OSError: Предоставленные данные не имеют байтов типа
ПРЕДУПРЕЖДЕНИЕ: root: Отправка ответа об ошибке:, data: b '{" error ":" Предоставленные данные не имеют байтов типа "," status_code ": 500} '

OSError: Предоставленные данные не имеют байтов типа ПРЕДУПРЕЖДЕНИЕ: root: Отправка ответа об ошибке:, data: b' {" error ":" Предоставленные данные не имеют type bytes "," status_code ": 500} '{использование адресного пространства: 581894144 байта / 554 МБ} {использование rss: 120606720 байт / 115 МБ} [pid: 6936 | приложение: 0 | требование: 1/1] 10.2.0.1 () {60 переменных в 1391 байте} [Чт, 26 марта 12:28:45 2020] GET / policy_count => сгенерировал 67 байтов в 452 мсек (HTTP / 1.1 500) 2 заголовка в 90 байтов (1 коммутатор на ядре 0)

1 Ответ

1 голос
/ 01 апреля 2020

Я столкнулся с аналогичной проблемой при переходе с Python 2,7 на Python 3,7 для Flask приложения. Flask -KVSession использует пакет simplekv python для хранения данных сеанса на различных серверах, а для версии Flask -KVSession = 0.6.2 существующий установленный simplekv не был полностью совместим с Python 3. Установка simplekv == 0.9.3 после установки Flask -KVSession разрешила проблему.

...