Как обрабатывать TypeError после переключения на Python3 - PullRequest
0 голосов
/ 04 июля 2019

Недавно мы перенесли наш код с python 2.7 на Python3.6. После этого теста рельсы apis не работают. Я пытался конвертировать в Unicode, b'get_projectxx ', но ничего не работает.

 self.project_name = self.client.send_get('get_project/%s' % self.project_id)['name']

здесь, я передаю self.project_id как 20

Я все время получаю ошибку ниже:

Exception: a bytes-like object is required, not 'str' <class 'TypeError'>

Есть идеи, как решить эту проблему? Любая помощь приветствуется. Спасибо!

1 Ответ

1 голос
/ 04 июля 2019

Похоже, send_get - это метод, вызывающий ошибку (он ожидает серию байтов, которые он может отправить как есть, а не строку, которую он должен будет кодировать).Используйте литерал bytes вместо str литерал:

 self.project_name = self.client.send_get(b'get_project/%s' % self.project_id)['name']
                                          ^
...