Проблема, похоже, в том, что в исходном HTML источнике, который вы разбираете, есть пустые элементы <td>
. Есть простое дополнение if
к концу вашего понимания списка, которое удалит значения None
из вашего списка:
values = [to_num(value.get_text()) for row in rows[1:] for value in row.find_all("td") if to_num(value.get_text())]
Также существуют альтернативные варианты, такие как уточнение запроса find_all (предположительно Beautiful Soup? ), чтобы быть более конкретным c (например, все ли элементы <td>
, о которых вы заботитесь, имеют идентификаторы или классы?), или, возможно, вы могли бы упростить оператор if в понимании списка.