我正在使用 twitter api,我有这个 python 代码设置:
call_twitter = urllib2.urlopen("http://search.twitter.com/search.json?q=hello")
tweets_json = json.loads(call_twitter.read())
api json输出的结构是
/completed_in
/stuff
/stuff
/results
.../tweet1
....../from_user
....../tweet_text
....../etc
.../tweet2
.../moretweets
我正在尝试最小的列表理解来获取内部字典中的推文“from_user”和“text”属性。我能做的就是,
call_twitter = urllib2.urlopen("http://search.twitter.com/search.jsonq=alhamdulillah")
tweets_json = json.loads(call_twitter.read())
for tweet in tweets_json['results']:
text = tweet['text']
from_user = tweet['from_user']
我将其改进为,
text_list = [tweet['text'] for tweet in tweets_json['results']]
from_user_list = [tweet['from_user'] for tweet in tweets_json['results']]
当我将“from_user”和“text”保存在两个不同的列表中时,我不确定它们是否总是相互对应(按顺序)。有没有办法在不使用 for 循环的情况下在一次迭代中同时获取“文本”和“from_user”?
我是一个 python 菜鸟,但提前感谢您的帮助:)
请您参考如下方法:
你可以做
text_list = [(tweet['text'], tweet['from_user']) for tweet in tweets_json['results']]
这会给你一个元组列表,每个元组都是(text, user)。
