正如[肯·怀特Ken White))在上述评论中指出的那样。该错误是由您尝试访问列表范围之外的索引引起的。
发生的是,您的CSV文件中有一个空白行,python无法处理该行,因为您正在调用该行,
index 0即使该行不存在,因此python也会引发异常。
为了解决此错误,您需要做的是检查列表中是否有足够的元素来运行代码。通过使用
if(len(row) < 1): continue
另一个可能引起问题的地方是您将列表
d放在另一个列表中
ks。然后,您尝试返回新列表中的第5个对象。但是,没有对象,因为您现在有了一个看起来像这样的列表
ks={{tweet,tweetyouwant,tweet},{list,two,if,present}}当您期望列表看起来像这样时
ks={tweet,tweetyouwant,tweet}为了解决这个问题,只要摆脱掉
ks=list(d)并打电话给
d您
ks
您的整个代码段都应该这样。
def tweet6(self): with precs.open('HELLOTWITTER.csv', 'r', encoding='utf-8', errors='ignore') as f: reader = csv.reader(f) d = {} for i, row in enumerate(reader): #Verify row is within range if(len(row) < 1): continue #Get the rows values d[row[0]]=row[1:] #If past row 10 then break if (i>=10): break #ks=list(d) #Not needed D is already a list return (d[5]) #return the row of the 6th tweet


