Python中的Nonetype型別怎麼判斷?
阿新 • • 發佈:2018-11-10
今天寫了個爬蟲,在抓取資料的時候遇到一個問題,我覺得如果不注意,這個問題很容易被忽略,所以特意在部落格記錄下:
問題描述:
比如,我在提取資訊時,這樣判斷型別:
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', '如果缸墊沒衝,就換水箱,我也準備換水箱。']