Невозможно очистить строку от нежелательных символов с помощью Python Beautifulsoup - PullRequest
0 голосов
/ 21 марта 2019

Когда я запускаю следующее

prices = [price.text.strip() for price in soup.select('.special-price')]
prices = prices.replace(u'\xa0', u' ')
print(prices)

Я получаю «список» объект не имеет атрибута «заменить»

Где я должен положить заменить?Есть ли способ очистить его с помощью одного шага?

Спасибо

Ответы [ 3 ]

1 голос
/ 21 марта 2019

Поскольку у нас нет доступа к вашим образцам данных, это должно сделать:

Вам нужно поставить replace() на str, а не list, например:

prices = ['1','1','2','3','4','5','1','1','1']
print([x.replace('1', '9') for x in prices])

ВЫХОД :

['9', '9', '2', '3', '4', '5', '9', '9', '9']
1 голос
/ 21 марта 2019

Да, потому что вы создали список со списком

Вам необходимо преобразовать список в строку на prices=''.join(prices), предполагая, что цены - это список строк, если не анализировать его в строку.Цены тогда будут чередой.Теперь вы можете позвонить заменить его.

0 голосов
/ 21 марта 2019

Потому что 'list' object has no attribute 'replace'. Вот почему.

Вы пытаетесь изменить цены индивидуально. В строке есть метод replace, а в списке нет.

Вы должны добавить замену к вашему списку понимания.

prices = [price.text.strip().replace(u'\xa0', u' ') for price in soup.select('.special-price')]
print(prices)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...