PythonのNonetypeタイプはどう判断しますか?

1207 ワード

今日は爬虫類を書きましたが、データを捕まえるときに問題に遭遇しました.注意しないと、この問題は無視されやすいと思いますので、わざわざブログに記録しました.
問題の説明:
例えば、私は情報を抽出するとき、このようにタイプを判断します.
type(answers[0].find_all("table")[0].string)   

結果は次のとおりです.
NoneType

だから、条件フィルタリングの時にis notか!=このようにして試してみると、
type(answers[0].find_all("table")[0].string) is '''NoneType'''

結果として私が得たのは:
False

次に、私が==で判断するのもFalseですが、type()で判断できないほど難しいと思います.
調べてみると、Nonetypeタイプは、実は値がNoneなので、直接値を判断すればいいのです.例えば、
answers[0].find_all("table")[0].string is None

結果:
True

OK、ここまで、問題は解決しました.リストの導出式は直接結果を得ました.
answer_table  = [x.find_all("table")[0].string.strip() for x in answers if x.find_all("table")[0].string is not None]

answer_table結果:
['         ,          。', '       ', '        ,               ,                     ,   ', '     ,    ', '          ,     ,           。', '    ,           , ok', '      ,    ,       。']