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

pandas提取文本日期时间时报IndexError: list index out of range求助

错误原因

出现IndexError: list index out of range的核心原因是遍历到部分不符合格式的行,执行line.split()后得到的列表长度不足2,直接取x[0]、x[1]触发索引越界。你逐行测试时用的都是格式正常的行,不会触发问题,但全量运行时会遍历到异常行(比如空行、格式残缺的行、带多余空白/换行符的异常行),哪怕过了前置的filter_message、is_single_offer校验,依然存在漏判的情况。

修复方案
  • 先对分割后的列表做长度校验,同时增加异常行打印,方便定位问题行,修改后的代码如下:
for line in msgs:
    if filter_message(line):
        if is_single_offer(line):
            # 先做预处理,去掉首尾空白、换行符
            line = line.strip()
            x = line.split()
            # 加长度校验,避免索引越界
            if len(x) >= 2:
                # 获取日期
                dating = x[0]
                Date.append(dating.replace(',',''))
                
                # 获取时间
                timing = x[1]
                Time.append(timing)
            else:
                # 打印异常行方便排查
                print(f"格式异常行:{line},分割后长度:{len(x)}")
  • 优化前置校验逻辑,在filter_message、is_single_offer函数中补充行格式校验,比如先判断strip后的行split长度是否≥2,不符合直接返回False,减少无效后续处理。
  • 如果是从文本文件读入的msgs,读入时就可以做一次清洗,过滤掉空行、首尾全是空白的无效行,再送入后续遍历逻辑。

参考数据样例:
数据样例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:24:03