Python 如何将带有逗号和点的字符串转换为浮点?

Python 如何将带有逗号和点的字符串转换为浮点?,python,selenium-webdriver,web-scraping,Python,Selenium Webdriver,Web Scraping,我在将字符串转换为浮点值时遇到问题。我在一个网站上大喊大叫,试图让价格浮动,但问题是价格可能是这样的: 2549.98美元 2262.64美元 999.00美元 marketprice = driver.find_element_by_xpath('/html/body/app/content-holder/marketplace-detail/landfield-detail/div/div/div[2]/div/div[1]/div[2]/span') userprice = driver.

我在将字符串转换为浮点值时遇到问题。我在一个网站上大喊大叫,试图让价格浮动,但问题是价格可能是这样的:

2549.98美元

2262.64美元

999.00美元

marketprice = driver.find_element_by_xpath('/html/body/app/content-holder/marketplace-detail/landfield-detail/div/div/div[2]/div/div[1]/div[2]/span')
userprice = driver.find_element_by_xpath('/html/body/app/content-holder/marketplace-detail/landfield-detail/div/div/div[2]/div/div[1]/div[6]/span')
print(marketprice.text, userprice.text)
imarketprice = float(marketprice.text[1:])
iuserprice = float(userprice.text[1:])
当我尝试转换错误时,我得到:

ValueError:无法将字符串转换为浮点:“2549.98”


有逗号和点的问题吗?

只需使用以下方法删除逗号:

imarketprice=float(marketprice.text[1:].replace(“,”,”))

您只需删除逗号即可。通常情况下,将货币金额表示为浮动不是一个好主意。是的,这就是problem@Chris不是真的。因为很多文本文件使用了上千个分隔符。您需要使用正确的解析方法,而不仅仅是使用
float()
而是使用
locale.atof
。替换在世界上一半的地方是行不通的,
是十进制分隔符。如果你在欧洲、俄罗斯、非洲或南美洲尝试替换逗号,你最终会删除小数点分隔符。目前接受的答案在副本中不是正确的方法。改用。货币应该总是用十进制来表示,而不是浮点数。这是一种只适用于非常特定的地区,特别是美国和中国的方法。它在世界上一半的地方都不起作用<代码>区域设置。atof可以处理任何区域设置