Openpyxl读取Excel报错AttributeError: 'NoneType'无lower属性解决方法
报错原因
遍历Excel行的过程中,部分行的第三列(category列)单元格为空,对应的取值为None,None不属于字符串类型,没有lower()方法,因此触发属性错误。你之前打印category只看到有效值,是因为打印输出仅展示了非空行的结果,空值行的输出容易被忽略。
修复后代码
from openpyxl import load_workbook quotesTable = load_workbook(filename="Motivational Quotes Database.xlsx") sheet = quotesTable.active for row in sheet.iter_rows(min_row=5, min_col=1, max_col=3): category = row[2].value # 先判断category非空再调用字符串方法 if category and category.lower() == 'attitude': # 打印前两列:引用内容、作者 print(row[0].value, row[1].value)
改动说明
- 新增了category非空判断逻辑,空值会直接跳过后续判断,不会执行
lower()方法 - 调整打印逻辑,仅输出需求要求的前两列内容,而非整行对象
内容的提问来源于stack exchange,提问作者PerplexingParadox
相关产品推荐
相关产品推荐

