Python 3.2+urllib.parseпонятие
urllib.parse.ParseResultBytes
результаты разбора
Результат urlparse() для bytes: те же шесть полей, что у ParseResult, но поля — байтовые строки.
Синтаксис
ParseResultBytes(scheme, netloc, path, params, query, fragment)
Получается, когда в urlparse() передали bytes, например прочитанные из сокета. decode() по умолчанию декодирует ASCII и падает на других байтах, поэтому адрес с кириллицей в байтах декодируют явно: decode('utf-8'). Сравнение со строкой (r.scheme == 'http') молча даёт False.
Примеры
from urllib.parse import urlparse
r = urlparse(b'http://h/p?q=1')
print(type(r).__name__, r.scheme == 'http') # → ParseResultBytes False
print(r.decode().query) # → q=1
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности