TypeError: невозможно объединить байты в str в Python 3.5.1 - PullRequest
0 голосов
/ 18 февраля 2019

Я получаю сообщение об ошибке даже после установки кодировки base64:

Traceback (most recent call last):
  File "api_tufin_5.py", line 41, in <module>
    main(sys.argv[1:])
  File "api_tufin_5.py", line 28, in main
    headers['Authorization'] = 'Basic ' + base64.b64encode(user + ':' + 
    password)
TypeError: can't concat bytes to str

Это мой код:

import requests, sys, base64, collections, json


# global vars
server_ip = 'url'
headers = {}
user = b'username'
password = b'password'
debug = False

def http_get(url, headers=headers):

        try:
                r = requests.get(url=url, headers=headers, verify=False)
        except requests.exceptions.RequestException as e:
                print >> sys.stderr, e
                return

        if debug:
                print (r.text)

        http_result = collections.namedtuple('HTTP_Result', ['status', 
        'text'])
        return http_result(r.status_code, r.text)


def main(argv):
        headers['Accept'] = 'application/json'
        headers['Authorization'] = 'Basic ' + base64.b64encode(user + ':' + 
        password)


        r = http_get('url/securechangeworkflow/api/securechange/tickets?
        status=In Progress&count=10&start=1&expand_links=false')
        if r.status != 200:
                print >> sys.stderr, "Failed to get devices"
                print >> sys.stderr, "Status: ", r.status
                return -1

        print (r.text)


if  __name__ =='__main__':
    main(sys.argv[1:])

Почему при кодировке base64 все равно будет отображаться ошибка?Что заставило бы это не конкатировать байты к str?Использование + должно быть в состоянии объединить две строки в один объект.

...