2016-12-06 9 views
1

StocktwitのAPIからデータを取得することを学び、現在APIのデータを調べています。私はアップル社の株式について、過去30ツイートについての情報を抽出するために、次のコードを実行:Stocktwits辞書のキーを印刷できません

import requests 

a=requests.get('https://api.stocktwits.com/api/2/streams/symbol/AAPL.json') 
a=a.json() 
print(a.keys()) 
>> dict_keys(['cursor', 'messages', 'response', 'symbol']) 

私は4つのキーがAppleの株価辞書にある見ることができます。しかし、私は基本的に私が探している感情の鍵を見ません:キーワード「強気」は何度現れますか? 「弱い」という言葉は何度現れますか?

ブラウザから直接linkを直接入力すると、アップルの株式に「弱気」と「強気」のキーワードが何回表示されるかを手動で確認できます。 Python 3.5でこれをどうすればできますか?

EDIT:this 投稿のように、辞書のキーの1つでキーワードを探してみました。

for bearish in a.keys(): 
print ("the key name is" + bearish + "and its value is" + a[bearish]) 
>> TypeError: Can't convert 'dict' object to str implicitly 

答えて

1

sentimentmessagesに埋葬されています:

from collections import Counter 
sentiment_dict = Counter() 
for message in a['messages']: 
    if 'entities' in message: 
     if 'sentiment' in message['entities']: 
      sentiment = message['entities']['sentiment'] 
      if sentiment is not None: 
       sentiment = sentiment['basic'] 
       sentiment_dict[sentiment] += 1 
for key, value in sentiment_dict.items(): 
    print "%s: %s" % (key, value) 

出力

Bearish: 4 
Bullish: 8 

私はを使用format()が何をするかを理解するには、次の

ルック感情の頻度を数えるためにdictの専門化である。 JSONのフィールドを見つけようとしている他の人々のため

、私は

import json 
print json.dumps(a, indent=4) 
+0

恐ろしいをお勧めします! 「弱気」と「強気」が出現する回数を数えるために、Pythonの関数や方法を使用することができますか? –

+0

私はこの例を 'Counter'クラスを使うように変更しました。 –

0

おそらくa[bearish]は別の辞書です。 print()は自動的にスペースを挿入し、なぜあなたは

それが簡単にここで何が起こっているのかデバッグするようになります
print ("the key name is", bearish, "and its value is", a[bearish]) 

にあなたのprint文を変更しないでください。

0

+の代わりにformat()を使用して問題を解決する必要があります。

>>> my_dict = {'a': {'aa': 10}, 'b': {'bb': 20}} 
>>> 
>>> for key in my_dict.keys(): 
...  print "key :" + key + " and value: " + my_dict[key] 
... 
Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
TypeError: cannot concatenate 'str' and 'dict' objects 
>>> 
>>> for key in my_dict.keys(): 
...  print "key : {} and value: {}".format(key, my_dict[key]) 
... 
key : a and value: {'aa': 10} 
key : b and value: {'bb': 20} 
関連する問題