Python 改进twitter查询中的列表理解
我正在使用twitter api,我有以下python代码设置:Python 改进twitter查询中的列表理解,python,json,twitter,Python,Json,Twitter,我正在使用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 ....../twe
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
我正在尝试最小的列表理解来获取内部字典中的tweets“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循环
我是一个python noob,但提前感谢您的帮助:)您可以这样做
text_list = [(tweet['text'], tweet['from_user']) for tweet in tweets_json['results']]
这将为您提供一个元组列表,每个元组都是(文本,用户)
text_list = [(tweet['text'], tweet['from_user']) for tweet in tweets_json['results']]
这将为您提供一个元组列表,每个元组都是(文本,用户)
尝试以下操作:
tweets = [(t['text'], t['from_user']) for t in tweets_json['results']]
这将为您提供一个元组列表,其形式为(tweet,user)
尝试以下方法:
tweets = [(t['text'], t['from_user']) for t in tweets_json['results']]
这将为您提供一个元组列表,其形式为
(tweet,user)
,就可读性而言,最好保留原始的for循环
tweets = [(tweet['text'], tweet['from_user']) for tweet in tweets_json['results']]
正如Gordon Bailey所建议的,这是一种在元组(文本,用户)
中获取所需信息的好方法
就速度而言:列表理解可能更好
通常,如果您正在构建复合值,则列表理解是可以接受的。如果您使用循环的副作用(例如打印),则显式循环更好。就可读性而言,最好保留原始的循环
tweets = [(tweet['text'], tweet['from_user']) for tweet in tweets_json['results']]
正如Gordon Bailey所建议的,这是一种在元组(文本,用户)
中获取所需信息的好方法
就速度而言:列表理解可能更好
通常,如果您正在构建复合值,则列表理解是可以接受的。如果您使用循环来解决它的副作用(例如打印),那么显式循环更好