2015-04-17 60 views
1

GitHub的鏈接代碼如下:alchemyapi菜譜,嘰嘰喳喳-Doesnot正常工作

https://github.com/AlchemyAPI/alchemyapi-recipes-twitter

我收到以下錯誤,當我運行recipe.py:

Traceback (most recent call last): 
    File "recipe.py", line 340, in <module> 
    main(sys.argv[1], int(sys.argv[2])) 
    File "recipe.py", line 43, in main 
    print_results() 
    File "recipe.py", line 303, in print_results 
    avg_pos_score = mean_results['result'][2]['avgScore'] 
TypeError: 'CommandCursor' object has no attribute '__getitem__' 

我正在使用Python版本2.7.6 請幫我解決這個問題。

+0

也許你應該在他們的bug追蹤器中創建一個問題。 (我還沒有找到信息是否支持2.7.x版本。也許這是一個唯一的3.x配方?) –

+0

嗨Gabor Bakos :) M不知道是否它的Python版本。 – HelloWorld

+0

它是一個python 2食譜。打印聲明將其發送出去。 –

回答

2

是的,我終於得到了正確的輸出。感謝Games Brainiac幫我弄明白了。

mean_results = list(tweets.aggregate([{"$group" : {"_id": "$sentiment", 

    "avgScore" : { "$avg" : "$score"}}}])) 
    avg_pos_score = mean_results[1]['avgScore'] 
    avg_neg_score = mean_results[0]['avgScore'] 

mean_results將包含字典實體列表(在本例中爲3個實體 - neg,pos,neutral)。 所以mean_results [0]指的是負面的實體。 mean_results [1]指正實體。 等。 mean_results [1] ['avgScore] =積極實體的平均得分。 依此類推......

1

我認爲您需要將第301行更改爲304以反映API中的新更改。所以,現在

mean_results = tweets.aggregate([{"$group" : {"_id": "$sentiment", "avgScore" : { "$avg" : "$score"}}}]) 

mean_results = list(tweets.agg....) 

,您不再需要使用resultCommandCursor

首先,改變這一行。

相反,你必須做的是這樣的:

list(mean_results[2]['avgScore']) 

相反,太與下一行重複。只需刪除result部分。

+0

CommandCursor錯誤不再存在,但現在它說浮動對象不可迭代! Traceback(最近一次調用最後一次): 文件「recipe.py」,行343,位於 main(sys.argv [1],int(sys.argv [2])) 文件「recipe.py」,行43,在主 print_results() 文件 「recipe.py」,線306,在print_results avg_pos_score =列表(mean_results [2] [ 'avgScore'])類型錯誤: '浮動' 對象不是可迭代 – HelloWorld

+0

是否意味着你的問題解決了? –

+0

編號它沒有解決。請檢查註釋的詳細信息... :) – HelloWorld