Python从json中提取顶级用户名

时间:2013-01-05 12:19:02

标签: python twitter

我正在尝试从已加载的dict中获取已排序的列表或用户表。我能够如下打印它们但我无法弄清楚如何根据用户名在样本中制作的推文数量按降序排序。如果我能够做到这一点,我可能会想出如何跟踪用户。谢谢!

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  

1 个答案:

答案 0 :(得分: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)))