Python报错ValueError: invalid literal for int() with base 10: 'Gene1'求助
问题根因
代码第96行a.append(int(x1[0]))执行时,x1[0]的取值为字符串Gene1,int()函数仅支持将符合整数格式的字符串转换为数值,传入非数字格式的字符串就会触发该 ValueError。
绝大多数场景下是新增第二部分代码后,读取的数据源包含表头行(第一行存储列名,Gene1属于表头字段),没有跳过表头就直接对所有行的第一个字段执行整数转换导致。
可落地解决方案
- 读取数据时优先跳过表头行,例如使用csv.reader读取文件时,遍历行之前执行
next(reader)跳过表头 - 存在非数字行的场景下可以加异常捕获兼容:
try: a.append(int(x1[0])) except ValueError: # 可根据业务需求调整逻辑,比如跳过该行、记录问题行日志 pass
- 先做格式校验再执行转换:
if x1[0].isdigit(): a.append(int(x1[0]))
内容的提问来源于stack exchange,提问作者Jamal
相关产品推荐
相关产品推荐

