读取csv python时列出索引超出范围

Posted

技术标签:

【中文标题】读取csv python时列出索引超出范围【英文标题】:list index out of range while reading csv python 【发布时间】:2019-12-11 15:08:47 【问题描述】:

当我运行代码时,我试图从 CSV 文件中查找一些项目,有时它可以工作,但有时它会产生超出范围的错误列表索引

def find_check_in(name,date):
    x = 0
    f = open('employee.csv','r')

    reader = csv.reader(f, delimiter=',')
    for row in reader:
        id = row[0]
        dt = row[1]
        v  = row[2]
        a = datetime.strptime(dt,"%Y-%m-%d")
        if v == "Check-In" and id=="person":
            x = 1

    f.close()            
    return x

Traceback(最近一次通话最后一次):

文件“”,第 51 行,在 x=find_check_in(姓名,日期)

文件“”,第 21 行,在 find_check_in 中 id = 行[0]

IndexError: 列表索引超出范围

【问题讨论】:

这似乎是在您的文件结束之前您的 csv 文件中有随机空行的情况。一个 if(row) 检查就可以解决问题 你可以查看他的答案。 ***.com/a/57335829/8824174 【参考方案1】:

您的 CSV 文件包含空白行,导致 row 变为空列表,在这种情况下没有索引 0,因此出现错误。确保您的输入 CSV 没有空行,或者添加一个条件以仅在该行不为空时处理该行:

for row in reader:
    if row:
        # the rest of your code

【讨论】:

【参考方案2】:

似乎 reader 正在返回没有元素的行。您的数据是否包含任何此类行?或者您可能需要对reader 使用newline='' 参数?

https://docs.python.org/3/library/csv.html#csv.reader

【讨论】:

以上是关于读取csv python时列出索引超出范围的主要内容,如果未能解决你的问题,请参考以下文章

Python(熊猫)错误IndexError:单个位置索引器超出范围

创建任务时列出索引超出范围异常

列出一些数据集的索引超出范围?

IndexError:使用beautifulsoup 抓取广告时列出的索引超出范围

IndexError:在pyspark shell上使用reduceByKey操作时列出索引超出范围

Networkx:通过循环遍历节点列表添加属性时,IndexError:列表索引超出范围