TypeError: требуется байтоподобный объект, а не 'str' при использовании REST в Python 3.5.1 - PullRequest
0 голосов
/ 17 февраля 2019

Я получаю следующую ошибку при запуске сценария Python REST API:

Traceback (most recent call last):
  File "api_tufin_4.py", line 4, in <module>
    b64Val = base64.b64encode(usrPass)
  File "C:\Program Files\Python35\lib\base64.py", line 62, in b64encode
    encoded = binascii.b2a_base64(s)[:-1]
TypeError: a bytes-like object is required, not 'str'

Я использую следующий код:

import requests, base64

usrPass = "user:pass"
b64Val = base64.b64encode(usrPass)
api_URL = 'api-url'
r=requests.post(api_URL, 
                headers={"Authorization": "Basic %s" % b64Val},
                data=payload)

1 Ответ

0 голосов
/ 17 февраля 2019

base64.b64encode работает с двоичными данными (bytes), а не с текстовыми данными (str).

Сделайте ваше имя пользователя / пароль буквальным bytes, и все в порядке.Если это ASCII, перевод тривиален:

usrPass = "user:pass"

становится:

usrPass = b"user:pass"

Ведущий b делает его a bytes литерал .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...