You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取CSV文件时反复出现ValueError错误该怎么解决?

错误根因

ValueError: invalid literal for int() with base 10: ' 1/11/2011'
触发报错的代码行birthYear = int(row[1] or 0)预期row[1]为纯数字格式的年份值,但实际读取到的是带前置空格的月/日/年格式日期字符串,int()函数无法直接将日期字符串转换为整数,因此抛出异常。

可落地解决方案
  • 核对CSV字段索引,避免取错列
    先运行调试代码确认各列对应的实际内容,确认出生年份字段对应的索引是否为1:

    import csv
    with open("你的CSV文件路径.csv", "r", encoding="utf-8") as f:
        reader = csv.reader(f)
        # 打印前3行表头+内容,确认列顺序
        for i in range(3):
            print(next(reader))
    

    如果是取错列,将row[1]替换为年份字段对应的正确索引即可。

  • 从日期字段提取年份
    若row[1]确实为出生日期字段,先解析日期再提取年份:

    from datetime import datetime
    
    try:
        # 先去除字符串前后空格,再按对应日期格式解析
        birth_date = datetime.strptime(row[1].strip(), "%m/%d/%Y")
        birthYear = birth_date.year
    except (ValueError, IndexError):
        # 解析失败时赋值默认值,可自定义调整
        birthYear = 0
    
  • 增加异常捕获兜底
    若CSV存在大量不规则脏数据,直接给转换逻辑加异常捕获,避免程序直接中断:

    try:
        birthYear = int(row[1].strip() or 0)
    except (ValueError, IndexError):
        birthYear = 0
    

内容的提问来源于stack exchange,提问作者BluPrints

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:45:03