Получаю ошибку и не могу понять почему?

def process(packet):
    if packet.haslayer(http.HTTPRequest):
        url = get_url(packet)
        print('[+] HTTP Request >>' + url)

получаю ошибку:

TypeError: can only concatenate str (not "bytes") to str


Ответы (2 шт):

Автор решения: Constantine

Вы пытаетесь сложить два разных типа byte и str. Исправить можно указанием кодировки выводе:

print('[+] HTTP Request >>' + url.decode('utf8'))

Либо выводом через str.format (что бывает полезно для логов):

print('[+] HTTP Request >>'.format(url))
→ Ссылка
Автор решения: Dmitry

через f-строку примерно то же самое

print(f"[+] HTTP Request >>{url.decode()}")

Результат будет примерно такой

"[+] HTTP Request >>http://here-your-hostname.com"

Если не вызывать метод decode(), то ошибку вы не получите и по умолчанию будет вызван метод str(), но на выходе может быть неожиданный результат, который будет включать литеру b''. Что то такое:

"[+] HTTP Request >>b'http://here-your-hostname.com'"
→ Ссылка