如何读取字符串作为浮点数,其间有逗号?

时间:2017-04-20 10:19:12

标签: python html web-scraping beautifulsoup

这段代码给了我一个字符串,我可以轻松地将其转换为浮点值,但当值为2,325.45时会出现问题。代码抛出一个错误,说它无法读取浮点值中的逗号。我需要将此值与固定值1000.00进行比较。我该怎么做 这是代码。

import pyttsx
import time
import urllib2
from bs4 import BeautifulSoup as soup
engine=pyttsx.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-70)

while True:
    time.sleep(2)
    req = urllib2.Request('https://in.finance.yahoo.com/quote/TCS.NS    /?p=TCS.NS')
    response = urllib2.urlopen(req)
    the_page = response.read()
    #print the_page
    page=soup(the_page,"html.parser")
    new=page.findAll("span",{"class":"Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)"})[0].string
    print new
    engine.say(new)
   engine.runAndWait()

2 个答案:

答案 0 :(得分:2)

您首先应该从数字字符串中删除逗号,,然后将其输入到float。例如:

>>> num_str = '2,325.45'
>>> float(num_str.replace(',', ''))
2325.45

答案 1 :(得分:0)

使用re.sub

>>> import re
>>> num_str = '2,325.45'
>>> float(re.sub(',','',num_str))
2325.45