2017-01-06 7 views
0

私はbeautifulsoupを使用しており、このhtml trオブジェクトにチェックインするコードブロックがあります。check pythonオブジェクトが動作していません

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

しかし、それは常にifブロック内に入ると属性エラーを返して「『NoneType』オブジェクトが属性 『テキスト』を持っていない」私が間違っているのは何

を?

+4

'tr.find( 'td')'が 'なし 'の場合はどうなりますか? –

答えて

3

あなたはtr.find()二つの別個のコール、'th'に1つ、'td'のために他を持っています。後者はNoneを返すこともできますが、そのためにテストしないでください。tr.find('td').textAttributeError例外を発生させる可能性があります。

両方の結果をテストする必要があります。 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 '' 
関連する問題