2013-10-24 4 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 файлы текст и должны быть открыты, как таковой.

Смежные вопросы