IndexError:'列表索引超出范围'

时间:2013-10-24 18:08:10

标签: python mongodb twitter

我正在运行此代码。

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' 

我做错了什么?

2 个答案:

答案 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])

并且您正在尝试访问不再存在的元素...

答案 1 :(得分:0)

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

CSV文件为文字,需要打开。