2013-10-24 109 views
-2

我正在运行此代码。IndexError:'列表索引超出范围'

import tweetstream 
import csv 

twitterUsername = "USERNAME" 
twitterPassword = "PASSWORD" 

twitterWordFilter = [] #Defined the list 
wordListCsv = csv.reader(open('wordstofilter.csv', 'rb')) 
for row in wordListCsv: 
    #Add the 0th column of the current row to the list 
    twitterWordFilter.append(row[0]) 

print "Filtering the following words: ",', '.join(twitterWordFilter) 

try: 
    with tweetstream.FilterStream(twitterUsername, twitterPassword,track=twitterWordFilter) as stream: 
     for tweet in stream: 
      try: 
       print stream.count,"(",stream.rate,"tweets/sec). ",tweet['user']['screen_name'],':', tweet['text'].encode('utf-8') 
       #print tweet #Use for raw output 
      except: 
       print "ERROR: Presumably missing field" 

except tweetstream.ConnectionError, e: 
    print "Disconnected from twitter. Reason:", e.reason 

当我调试它,它提供了以下错误的行twitterWordFilter.append(row[0])

Error : IndexError: 'list index out of range' 

我在做什么错?

+1

这意味着'行'是空的。 –

+0

请提供更多详情 –

回答

0

< < <原始代码

wordListCsv = csv.reader(open('wordstofilter.csv', 'rb')) 
for row in wordListCsv: 
     #Add the 0th column of the current row to the list 
    twitterWordFilter.append(row[0]) 

原始代码>>>

这里,

CSV文件是空的,所以它返回一个[](空单)wordListCsv

twitterWordFilter.append(row[0]) 

个,并且您试图访问其不再是现有的元素...

0
wordListCsv = csv.reader(open('wordstofilter.csv', 'rt')) 
for row in wordListCsv: 

CSV文件文本,需要开这样。

相关问题