小马爱乐容 发表于 2023-1-8 16:54:11

关于空值的判断

求助各位大佬。我打算将Excel文件的各单元格的内容进行分词处理,但是有的单元格是空单元格。在下面的程序中,我打算用 “if type(ws['E' + str(row)].value) != 'NoneType':” 这个命令来选取非空的单元格进行操作,但是不起作用。请问,我要怎么处理啊?


import openpyxl
import jieba

wb = openpyxl.load_workbook('x.xlsx')
ws = wb.active

for row in range(4, ws.max_row + 1):
    if type(ws['E' + str(row)].value) != 'NoneType':
      words_deal = ws['E' + str(row)].value.strip()# 删除多余空格
      words_split = list(jieba.cut(words_deal))# 分词后并得到列表
      words_report = ';'.join(words_split)   # 列表转化为字符串
      ws['E' + str(row)] = words_report      # 赋值给单元格
    else:
      continue


ba21 发表于 2023-1-8 19:56:53

直接判断值
ws['E' + str(row)].value is None

不二猫猫 发表于 2023-3-11 17:09:29

在 Python 中,type() 函数返回的并不是字符串,而是一个类型对象。因此,判断单元格内容是否为空应该使用 is 或 is not 运算符,而不是字符串比较。具体地,可以将 if 语句改为:

if ws['E' + str(row)].value is not None:
    # 进行操作
else:
    continue
这样就可以正确地选取非空单元格进行操作了。

歌者文明清理员 发表于 2023-3-15 20:11:48

type 是一个类,返回一个类的类
他会返回参数的类型,返回值也是类。

在你的程序中,
你可以直接判断单元格的值是否为 None
页: [1]
查看完整版本: 关于空值的判断