运行不同Excel表时出现AttributeError: 'NoneType'无group属性问题求助
错误原因
- 问题出在正则匹配逻辑:
re.search()当目标字符串没有匹配到-\d+u格式的内容时,会返回None,此时直接调用.group()就会触发空对象属性错误。 - 其他Excel文件运行正常,是因为那些文件中
catalog_id_column列的所有值都包含-数字u格式的后缀,而出错的Excel里该列存在不满足该格式的单元格内容,空值、格式不符的编码、拼写异常的条目都可能导致该问题。
快速排查异常值
先运行以下代码找出不符合格式的行,定位问题数据:
# 找出所有不匹配正则的行 mask = gbio_abs[catalog_id_column].apply(lambda x: re.search('-\d+u', x) is None) print(gbio_abs[mask][catalog_id_column])
输出结果就是本次出错的Excel里格式异常的条目,你可以手动修正这些数据,或者调整代码兼容异常情况。
兼容异常的修复方案
如果你想保留原逻辑,异常条目直接返回原内容不做修改,可以按版本选择对应写法:
Python 3.8及以上版本(支持海象运算符)
gbio_abs[nosize_catalog_id_column] = gbio_abs[catalog_id_column].apply( lambda x: x.replace(res.group(), '') if (res := re.search('-\d+u', x)) else x ).values
Python 3.8以下版本
def clean_catalog_id(x): match_res = re.search('-\d+u', x) if match_res: return x.replace(match_res.group(), '') return x gbio_abs[nosize_catalog_id_column] = gbio_abs[catalog_id_column].apply(clean_catalog_id).values
内容的提问来源于stack exchange,提问作者Thief
相关产品推荐
相关产品推荐

