我正在尝试解析包含数字的字符串,当我尝试将其转换为 float 时,它给了我一个错误:
ValueError: could not convert string to 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 (most recent call last): File "C:/Users/SHIVAM TYAGI/PycharmProjects/price-of-chair1/src/app.py", line 9, in print(float(price_without_symbol)); ValueError: could not convert string to float: '8,900'
最佳答案
取决于numeric convention使用时,逗号可以表示千位分隔符或小数点。
Python float
numbers syntax使用点 (.
) 作为小数点,并使用可选的下划线 (_
) 作为千位分隔符,仅供阅读。
这意味着您需要知道您正在读取的数字使用哪种数字约定。
就您而言,您似乎正在使用美国英语数字约定来读取数字。
US-English | 4,294,967,295.00
您所需要做的就是删除充当千位分隔符的逗号。
price_without_symbol=price[1:].replace(',', '')
print(float(price_without_symbol))
关于python - 我收到 ValueError : could not convert string to float: '8,900' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707661/