最近在做爬虫爬取豆瓣读书的数据,发现很多书籍会没有评分,当时爬虫也没做特别处理,所以这个问题保留了下来。
数据格式就是以英文逗号分隔,(book_id,book_name,book_score)
一部分数据如下
1443021,网络营销,
2265243,How Buildings Work,
4022720,影子富豪查克·菲尼, 7.3
2157526,Mind Set!,
1431351,平家物语图典, 7.1
之前试过了判断是不是None,或者用正则匹配Null都不行
最后想到的办法就是将score转换成字符串,因为此时的score是列表list的一个元素,之后只需将字符串score与" "判断是否相同即可
代码如下:
#处理缺失值的程序 auther:wuyou
file = open("BookInfo.txt","r",encoding="utf-8") #打开老文件,读模式
newfile = open("Book.txt","a",encoding="utf-8") #打开新文件,追加写模式
for line in file:
info = line.replace("\n","") #去掉换行符
book_info = info.split(",") #划分数组
if len(book_info) > 3: #如果多于3个元素
continue
score = str(book_info[2]) #转换成字符串
if score == " ": #如果字符串为空
continue
newfile.write(line) #如果通过前两项测试,则写入新的文件中保存
file.close() #关闭文件
newfile.close() #关闭文件