не может использовать строковый шаблон на байтовоподобном объекте ошибка возникает только в Windows - PullRequest
0 голосов
/ 31 октября 2019

Эта ошибка была задокументирована несколько раз на SO, но в моем случае это происходит только в Windows (Windows 10). Он прекрасно работает на Ubuntu для меня.

Это код, который выдает ошибку:

for value in content.findAll('td', attrs = {"class":"tdWhite"}):
        if value.div:
            values.append(re.sub(r'\s+', ' ', value.div.text.encode('utf-8').strip()))
        else:
            values.append(value.text.encode('utf-8').strip())

Вот сообщение об ошибке:

Traceback (most recent call last):
  File ".\driverscraper.py", line 39, in <module>
    values = getDictionary(url)
  File ".\driverscraper.py", line 21, in getDictionary
    values.append(re.sub(r'\s+', ' ', value.div.text.encode('utf-8').strip()))
  File "C:\Python38\lib\re.py", line 208, in sub
    return _compile(pattern, flags).sub(repl, string, count)
TypeError: cannot use a string pattern on a bytes-like object

Также я попытался:

values.append(re.sub(b"\s+", b" ", value.div.text.encode('utf-8').strip()))

Но вышеприведенный вывод печатных символов в моем csv выглядит так:

b '\ xc2 \ xa027030000077'

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