2017-01-06 2 views
0

Я использую beautifulsoup и следующий код для проверки этого html tr объекта имеет th в нем.проверить python объект нет не работает

if tr.find('th') is not None: 
      result[tr.find('th').text] = tr.find('td').text 

Но всегда входя в блок, если и возвращает ошибку атрибут «объект„NoneType“не имеет атрибута„текст“»

Что я делаю неправильно?

+4

Что делать, если 'tr.find ('td')' is 'None'? –

ответ

3

Вы два различныхtr.find() вызовов, один для 'th', другой для 'td'. Последнее может также возвращать None, но вы не проверяете это, поэтому tr.find('td').text может поднять исключение AttributeError.

Вам необходимо проверить оба результата. Может быть, хранить пустую строку или другое значение по умолчанию, если отсутствует ячейка td?

header, cell = tr.find('th'), tr.find('td') 
if header is not None: 
    result[header.text] = cell.text if cell is not None else ''