2017-01-03 115 views
-1

我想知道为什么这段代码不会为每个json对象返回所需的文本?Python Twitter搜索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变量的内容,这将有所帮助。