1. 程式人生 > >Python中的Nonetype型別怎麼判斷?

Python中的Nonetype型別怎麼判斷?

今天寫了個爬蟲,在抓取資料的時候遇到一個問題,我覺得如果不注意,這個問題很容易被忽略,所以特意在部落格記錄下:

問題描述:

比如,我在提取資訊時,這樣判斷型別:

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', '如果缸墊沒衝,就換水箱,我也準備換水箱。']