Python中的Nonetype类型怎么判断?

本文分享了一个在爬虫数据提取过程中遇到的问题及解决方法。作者在使用Python的BeautifulSoup库进行网页解析时,遇到了如何正确判断元素是否为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', '如果缸垫没冲,就换水箱,我也准备换水箱。']

 

 

 

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Soyoger

听说打赏的都进了福布斯排行榜。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值