读取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 抓取广告时列出的索引超出范围