当我运行代码时,我试图从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:列表索引超出范围
答案 0 :(得分:1)
您的CSV文件包含空白行,导致row
变成一个空列表,在这种情况下没有索引0,因此会出现错误。确保您输入的CSV没有空行,或者添加条件以仅在行不为空的情况下处理该行:
for row in reader:
if row:
# the rest of your code
答案 1 :(得分:0)
好像读者正在返回没有元素的行。您的数据是否包含任何此类行?还是您需要对newline=''
使用reader
参数?