我正在运行此代码。
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'
我做错了什么?
答案 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文件为文字,需要打开。