1
У меня есть скрипт python, который извлекает данные с HTML-страницы. В HTML есть таблица с плавающей запятой. Когда я делаю findAll
и оператор присваивания, он присваивает его переменной типа unicode. Но мне нужна переменная типа float. Я думал, что я мог бы просто сделать float()
преобразование, но это бросает ошибку:Python unicode to float error
File "percentages.py", line 52, in <module>
top_score = float(row.findAll('td')[2].text.strip())
ValueError: invalid literal for float(): 62.4%
фрагмент кода выглядит следующим образом:
for link in stat_links:
r = requests.get(link)
soup = BeautifulSoup(r.text, "html.parser")
table = soup.find('table', class_="tr-table datatable scrollable")
team_rows = table.findAll('tr')
team_rows = team_rows[1:]
for row in team_rows:
if row.findAll('td')[0].text.strip() == '1':
top_score = float(row.findAll('td')[2].text.strip())
if row.findAll('td')[0].text.strip() == '351':
lowest_score = float(row.findAll('td')[2].text.strip())
for row in team_rows:
if row.findAll('td')[1].text.strip() == sys.argv[1]:
temp = float(row.findAll('td')[2].text.strip())
if link == "https://www.teamrankings.com/ncaa-basketball/stat/average-scoring-margin":
top_score = top_score + abs(lowest_score)
temp = temp + abs(lowest_score)
lowest_score = 0
temp = (temp - lowest_score)/(top_score - lowest_score)
team_one = team_one + temp
безупречный! Спасибо! –