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

时间:2019-08-03 05:47:09

标签: python list csv

当我运行代码时,我试图从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
  

回溯(最近通话最近一次):

     

文件“”的第51行,在       x = find_check_in(name,date)

     

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

行      

IndexError:列表索引超出范围

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

好像读者正在返回没有元素的行。您的数据是否包含任何此类行?还是您需要对newline=''使用reader参数?

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