鱼C论坛

 找回密码
 立即注册
查看: 1886|回复: 3

关于空值的判断

[复制链接]
发表于 2023-1-8 16:54:11 | 显示全部楼层 |阅读模式
10鱼币
求助各位大佬。我打算将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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-8 19:56:53 | 显示全部楼层
直接判断值
ws['E' + str(row)].value is None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-11 17:09:29 | 显示全部楼层
  1. 在 Python 中,type() 函数返回的并不是字符串,而是一个类型对象。因此,判断单元格内容是否为空应该使用 is 或 is not 运算符,而不是字符串比较。具体地,可以将 if 语句改为:

  2. if ws['E' + str(row)].value is not None:
  3.     # 进行操作
  4. else:
  5.     continue
  6. 这样就可以正确地选取非空单元格进行操作了。
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-15 20:11:48 | 显示全部楼层
type 是一个类,返回一个类的类
他会返回参数的类型,返回值也是类。

在你的程序中,
你可以直接判断单元格的值是否为 None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 02:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表