Я просматриваю строки таблицы в таблице, но первые 1 или 2 строки не содержат элементов, которые я ищу (они предназначены для заголовков столбцов таблицы и т. Д.).
Итак, после, скажем, третьей строки таблицы в ячейках таблицы (td) есть элементы, которые имеют то, что я ищу.
Например
td[0].a.img['src']
Но вызвать это не удается, поскольку в первых нескольких строках этого нет.
How can I guard against these cases so my script doesn't fail?
Я получаю такие ошибки:
nonetype object is unsubscriptable
2 ответа
Самый простой и понятный, если вы хотите, чтобы ваш код был «в строчке»:
theimage = td[0].a.img
if theimage is not None:
use(theimage['src'])
Или, лучше, заключите проверку None
в небольшую собственную функцию, например:
def getsrc(image):
return None if image is None else image['src']
И используйте getsrc(td[0].a.img)
.
Начиная с tr:
for td in tr.findChildren('td'):
img = td.findChild('img')
if img:
src = img.get('src', '') # return a blank string if there's no src attribute
if src:
# do something with src
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.