Я запускаю код, который работает на Python2 на Python3, и у него есть некоторые проблемы. У меня есть строка с форматированием:b64encode при переходе с Python2 на Python3
auth_string = '{client_id}:{client_secret}'.format(client_id=client_id, client_secret=client_secret)
и передаю его в качестве части «заголовки»:
headers = {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
'Authorization': 'Basic ' + b64encode(auth_string)
}
Когда я запускаю код, я получаю эту ошибку:
TypeError: 'str' does not support the buffer interface
После некоторых исследований это связано с тем, что Python3 рассматривает строки как объекты unicode, и вам нужно сначала преобразовать их в байты. Нет проблем, я не изменить линию:
'Authorization': 'Basic ' + b64encode(auth_string.encode(encoding='utf_8'))
Но теперь я получаю новую ошибку:
TypeError: Can't convert 'bytes' object to str implicitly
Что именно я здесь отсутствует?
Это сделало трюк! Огромное спасибо. Похоже, я забыл, что вам нужно слиться со струной. – GreenGodot