просто решая вашу заявленную проблему, вам нужно decode
байтов в строку или просто использовать атрибут text
.
при этом ваш код кажется излишне хрупким и может быть лучше:
response = requests.post('https://api.getbase.com/oauth2/authorize', data={
'client_id': self.client_id,
'response_type': 'code',
'redirect_uri': self.redirect_uri
})
# make sure we throw an exception on failure
response.raise_for_status()
webbrowser.open_new_tab(response.text)
таким образом, вы можете requests
иметь дело с кодированием / экранированием параметров соответствующим образом. по умолчанию кодировка / тип данных с HTTP-запросом POST application/x-www-form-urlencoded
. GET-запросы не отправляют тело, поэтому я не уверен, как работал ваш предыдущий код