Python 统计Facebook用户爱好的个数

CODE:

#!/usr/bin/python 
# -*- coding: utf-8 -*-

'''
Created on 2014-8-12
@author: guaguastd
@name: friends_likes_number.py
'''

# impot login
from login import facebook_login

# import helper
#from helper import pp

# import itemgetter 
from operator import itemgetter

# import PrettyTable
from prettytable import PrettyTable

# access to facebook
facebook_api = facebook_login()

# get friends like through single request
#friends_like = facebook_api.get_object('me', fields='id,name,friends.fields(id,name,likes)')
#pp(friends_like)

# get friends like through multi request
friends = facebook_api.get_connections("me", "friends")['data']
likes = { friend['name'] : facebook_api.get_connections(friend['id'], "likes")['data']
         for friend in friends[:20]}
print 'likes:', likes

# calculate the number of like
num_likes_by_friend = { friend : len(likes[friend])
                        for friend in likes }

pt = PrettyTable(field_names=['Friend', 'Num Likes'])
pt.align['Friend'], pt.align['Num Likes'] = 'l', 'r'
[ pt.add_row(nlbf) 
  for nlbf in sorted(num_likes_by_friend.items(),
                     key=itemgetter(1),
                     reverse=True)]

print "Number of likes per friend"
print pt

RESULT:

Number of likes per friend
+--------------------------+-----------+
| Friend                   | Num Likes |
+--------------------------+-----------+
| Ayelén Basualdo          |        25 |
| Soofi Cat                |        25 |
| Brenda Magali            |        25 |
| Brisa Agustina ʚiɞ       |        25 |
| Jeniifer Mendez          |        25 |
| Wanda Bianchi            |        25 |
| Los Mas Lindos del Mundo |        15 |
| Kevin Swaggy             |        14 |
| Jorge Rodriguez          |        11 |
| Karen Csr                |         8 |
| Silvia Dutto             |         3 |
| Nanu Soria               |         3 |
| 吴城                     |         1 |
+--------------------------+-----------+


posted @ 2015-05-09 14:30  hrhguanli  阅读(351)  评论(0编辑  收藏  举报