1

コードの github リンクは次のとおりです。

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を使用しています。これを解決するために私を助けてください。

4

2 に答える 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 つのエンティティ - 負、正、中立)。したがって、 mean_results[0] は負のエンティティを指します。mean_results[1] はポジティブ エンティティを参照します。等々。mean_results[1]['avgScore]=陽性エンティティの平均スコア。等々...

于 2015-04-17T15:24:29.750 に答える
1

API の新しい変更を反映するには、301 行目を 304 行に変更する必要があると思います。

まず、次の行を変更します。

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

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

そのため、に を使用する必要がなくなりresultましたCommandCursor

代わりに、あなたがしなければならないことはこれです:

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

代わりに、次の行でも繰り返します。パーツを外すだけresult

于 2015-04-17T12:47:53.820 に答える