我得到ValueError:无法将字符串转换为float:'8,900'

问题描述 投票:1回答:1

我试图解析一个包含数字的字符串,当我尝试将其转换为浮点数时,它给出了一个错误:

ValueError:无法将字符串转换为float:'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:无法将字符串转换为float:'8,900'

python decimal-point
1个回答
1
投票

根据使用的numeric convention,逗号可以表示千位分隔符或小数点。

Python float numbers syntax使用点(.)作为小数点和可选的下划线(_)作为千位分隔符,仅为了可读性。

这意味着您需要知道您正在阅读的数字使用哪种数字约定。

在您的情况下,您似乎正在使用美国英语数字惯例阅读数字。

美英| 4,294,967,295.00

您只需删除充当千位分隔符的逗号即可。

price_without_symbol=price[1:].replace(',', '')
print(float(price_without_symbol))
© www.soinside.com 2019 - 2024. All rights reserved.