2016-04-27 6 views
1
Traceback (most recent call last): 
    File "D:\myscripts\NewTermSentimentInference.py", line 88, in <module> 
    main() 
    File "D:\myscripts\NewTermSentimentInference.py", line 34, in main 
    tweets = tweet_dict(twitterData) 
    File "D:\myscripts\NewTermSentimentInference.py", line 15, in tweet_dict 
    twitter_list_dict.append(line[0]) 
IndexError: list index out of range 

コード:なぜこのエラーが発生しますか? twitter_list_dict.append(ライン[0])はIndexError:範囲外のリストインデックス

twitterData = sys.argv[0] # csv file 

def tweet_dict(twitterData): 
    ''' (file) -> list of dictionaries 
    This method should take your csv file 
    file and create a list of dictionaries. 
    ''' 
    twitter_list_dict = [] 
    twitterfile = open(twitterData) 
    twitterreader = csv.reader(twitterfile) 
    for line in twitterreader: 
     **twitter_list_dict.append(line[1])** 
    return twitter_list_dict 


def sentiment_dict(sentimentData): 
    ''' (file) -> dictionary 
    This method should take your sentiment file 
    and create a dictionary in the form {word: value} 
    ''' 
    afinnfile = open(sentimentData) 
    scores = {} # initialize an empty dictionary 
    for line in afinnfile: 
     term, score = line.split("\t") # The file is tab-delimited. "\t" means "tab character" 
     scores[term] = float(score) # Convert the score to an integer. 
    return scores # Print every (term, score) pair in the dictionary 


def main(): 

    tweets = tweet_dict(twitterData) 
    sentiment = sentiment_dict("AFINN-111.txt") 
    accum_term = dict() 

    """Calculating sentiment scores for the whole tweet with unknown terms set to score of zero 
    See -> DeriveTweetSentimentEasy 
    """ 

    for index in range(len(tweets)): 

     tweet_word = tweets[index].split() 
     sent_score = 0 # sentiment of the sentence 
     term_count = {} 
     term_list = [] 

評判分析をやろうとしているが、コードのこの部分の中にラインにインデックスエラーが直面していますtwitterからアクセスしたツイートがあるcsvファイルから辞書を作成しようとする方法ですが、誰かがそれを手伝ってくれますか?

答えて

0

空白行の入力CSVを確認します。

lineが空のリストである場合、 'list index out of range'エラーはtwitter_list_dict.append(line[0])にスローされ、したがって参照する最初の要素はありません。最も可能性が高い原因:CSV内の1行以上の行が空であり、csv.readerlineの空のリストを返すようになります。

CSV内の空行が期待されている場合は、ラインを確保するためのチェックを追加することによって、それらをスキップすることができますが空ではありません。

for line in twitterreader: 
    if line: # Check if line is non-empty 
    twitter_list_dict.append(line[0]) 
return twitter_list_dict 
関連する問題