Снимок экрана статистики Toronto Raptors от nba.com Я пытаюсь проанализировать данные из таблицы, найденной на nba.com, но проблема в том, что нулевые записи не вводятся как "0", а вместо этоговводятся как "-".
Если запись не равна нулю, она содержится в теге td с определенным классом (например, class = "pts" 25 для точек). Если запись равна нулю, у тега td нет класса, вместо этого он просто -.
Я использую красивую библиотеку супа для анализа этих данных, и я попытался найти все теги td и использовать оператор if, чтобы добавить «0» в мой массив вместо символа «-» (см. Код). Когда я иду распечатать имя игрока, номер, сыгранные игры и очки в формате CSV, точки не печатаются рядом с нужным игроком.
points = soup.find_all("td")
for point in points:
if point.has_attr("class") and point["class"][0]=="pts":
points_array.append(point.text)
elif point.text=="—":
points_array.append("0")
else:
pass
Я ожидаю, что программа должна пропустить любые тэги td, которые не имеют class = "pts" или текстовый атрибут, равный "-". После цикла «for point in points» for points_array должен иметь то же количество элементов, что и остальные три массива (names_array, numbers_array, games_array), а все характеристики игрока должны быть с одинаковым индексом в соответствующем массиве.