1

我正在尝试从加载的字典中获取排序列表或用户表。我能够按如下方式打印它们,但我不知道如何根据示例中用户名发出的推文数量按降序对它们进行排序。如果我能够做到这一点,我可能会弄清楚如何跟踪用户。谢谢!

tweets = urllib2.urlopen("http://search.twitter.com/search.json?q=ECHO&rpp=100")
tweets_json = tweets.read() 
data = json.loads(tweets_json)                                                                                                              

for tweet in data['results']:                                                                                           
...    print tweet['from_user_name']                                                                                                                                                               
...    print tweet['to_user_name']                                                                                          
...    print  
4

1 回答 1

0
tweets = data['results']
tweets.sort(key=lambda tw: tw['from_user_name'], reverse=True)

假设tw['from_user_name']包含来自给定用户名的推文数量。

如果tw['from_user_name']包含用户名,则:

from collections import Counter

tweets = data['results']
count = Counter(tw['from_user_name'] for tw in tweets)
tweets.sort(key=lambda tw: count[tw['from_user_name']], reverse=True)

要按他们发送的推文数量打印前 10 个用户名,您不需要对推文进行排序:

print("\n".join(count.most_common(10)))
于 2013-01-05T12:23:50.820 回答