2017-01-03 15 views
-1

このコードがすべてのjsonオブジェクトに対して必要なテキストを返さないのはなぜですか?Python Twitter Search API

# import 
import json 
from twitter import Twitter, OAuth, TwitterHTTPError, TwitterStream 

# Authentication 
ACCESS_TOKEN = 'hidden' 
ACCESS_SECRET = 'hidden' 
CONSUMER_KEY = 'hidden' 
CONSUMER_SECRET = 'hidden' 

oauth = OAuth(ACCESS_TOKEN, ACCESS_SECRET, CONSUMER_KEY, CONSUMER_SECRET) 

# TWITTER SEARCH 
twitter = Twitter(auth=oauth)   
search_tweets = twitter.search.tweets(q='#google') 
json_dump = json.dumps(search_tweets) 

for line in json_dump: 
    print(json_dump['text']) 

それは私に次のエラーを与える:

Traceback (most recent call last): File "twitter_streaming.py", line 46, in print(json_dump['text']) TypeError: string indices must be integers

+0

@Arman Python 2.7でも、 'print()'はうまく動作します –

答えて

0

この行を:

json_dump = json.dumps(search_tweets)

はそれでJSONを含む文字列にsearch_tweets変数を変換します。問題は、このコードで、その後です:

for line in json_dump: 
    print(json_dump['text']) 

何このコードがないこと文字json_dumpでを反復処理(json_dumpは現在の文字列であるため)で、その後、各文字のために、[「テキスト」を取得しようとします]インデックスを作成することができますが、これは明らかに可能です。

あなたの後のコードで動作するように、代わりにsearch_tweetsを辞書のリストに変換する必要があるようです。しかし、search_tweets変数の出力例がなくても、あなたがする必要のある正確なコードを指定することはできません。役立つと思われるsearch_tweets変数の内容を追加することができます。