显示Python / Django中朋友关注的Twitter粉丝

时间:2011-03-06 03:06:27

标签: python django twitter

我正在构建我的应用程序的快速部分,该应用程序会查看用户的关注者,并突出显示用户关注的人(朋友)所遵循的部分。

我想知道两件事:

  1. 有更有效的方法吗?似乎这样会影响Twitter的API限制,因为我需要检查每个用户朋友的朋友。

  2. 这是创建一个包含朋友ID及其关注的关注者的词典列表。相反,dict会更好地作为跟随者ID然后跟随他们的朋友。提示?

  3. 代码:

    # Get followers and friends
    followers = api.GetFollowerIDs()['ids']
    friends = api.GetFriendIDs()['ids']
    
    # Create list of followers user is not following
    followers_not_friends = set(followers).difference(friends)
    
    # Create list of which of user's followers are followed by which friends
    followers_that_friends_follow = []
    for f in friends:
        ff = api.GetFriendIDs(f)['ids']
        users = followers_not_friends.intersection(ff)
        followers_that_friends_follow.append({'friend': f, 'users': users })
    

1 个答案:

答案 0 :(得分:1)

对于问题的第二部分:

import collections

followers_that_friends_follow = collections.defaultdict(list)
for f in friends:
    ff = api.GetFriendsIDs(f)['ids']
    users = followers_not_friends.intersection(ff)
    for user in users:
        followers_that_friends_follow[user].append(f)

将导致字典包含:

keys = ids跟随用户的关注者,用户没有关注,并且跟随用户的朋友。

values =跟随关注者的朋友的id列表,用户不关注

例如,如果用户的关注者的id为23且用户的两个朋友(用户16和用户28)跟随用户23,则使用键23应该给出以下结果

>>> followers_that_friends_follow[23]
[16,28]