Вам нужно использовать decode
, чтобы правильно получить строку из последовательности байтов:
Неверно (обратите внимание на префикс 'b' и одинарные кавычки в результате):
>>> str(base64.b64encode(b'test'))
"b'dGVzdA=='"
Справа:
>>> base64.b64encode(b'test').decode('utf-8')
'dGVzdA=='
Кроме того, requests
может сделать это за вас:
from requests.auth import HTTPBasicAuth
r = requests.get('https://api.outbrain.com/amplify/v0.1/login', auth=HTTPBasicAuth('user', 'pass'))