Я получаю ValueError: не удалось преобразовать строку в число с плавающей точкой: '8,900' - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь разобрать строку, содержащую число, и при попытке преобразовать ее в число с плавающей точкой выдает ошибку:

ValueError: не удалось преобразовать строку в число с плавающей точкой: '8 900 '

Мой код:

soup=BeautifulSoup(content,"html.parser")
element=soup.find("div",{"class":"_1vC4OE _3qQ9m1"})
price=element.text
price_without_symbol=price[1:]
print(float(price_without_symbol));

Вывод:

"C: \ Users \ SHIVAM TYAGI \ PycharmProjects \ price-of-chair1\ venv \ Scripts \ python.exe "" C: / Users / SHIVAM TYAGI / PycharmProjects / price-of-chair1 / src / app.py "Traceback (последний вызов был последним): файл" C: / Users / SHIVAM TYAGI /PycharmProjects / price-of-chair1 / src / app.py ", строка 9, в печатном виде (float (price_without_symbol));ValueError: не удалось преобразовать строку в число с плавающей точкой: '8,900'

1 Ответ

0 голосов
/ 15 февраля 2019

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

Python float Синтаксис чисел использует точку(.) в качестве десятичной точки и необязательное подчеркивание (_) в качестве разделителя тысяч, только для удобства чтения.

Это означает, что вам необходимо знать, какое числовое соглашение использует число, которое вы читаете.

В вашем случае может показаться, что вы читаете числа, используя US-English числовое соглашение.

US-English |4 294 967 295,00

Все, что вам нужно, это удалить запятую, которая действует как разделитель тысяч.

price_without_symbol=price[1:].replace(',', '')
print(float(price_without_symbol))
...