2015-03-24 24 views

Trả lời

9

Nếu bạn chỉ có giá trị user_id, bạn cần gọi API twitter với số get_user(user_id) method. Đối tượng Người dùng được trả về sẽ chứa tên người dùng trong screen_name.

# steps not shown where you set up api 
u = api.get_user(783214) 
print u.screen_name 

Nếu bạn đã có đối tượng Người dùng từ một cuộc gọi API khác, hãy tìm tên screen_name.

+1

đây là những gì tôi đã cố gắng để có được nhưng tôi figured nó ra trước khi bất cứ ai trả lời nhờ anyway –

+0

này sẽ không làm việc cho tôi – Veltro

+0

'AttributeError: 'unicode' đối tượng không có thuộc tính 'screen_name'' – Veltro

7

Bạn có thể sử dụng mã này để có được tên người dùng màn hình hoặc sử dụng id

Để có được tên màn hình sử dụng từ người dùng id

In [36]: import tweepy 
In [37]: consumer_key = Your_consumerkey 
In [38]: consumer_secret = Your_consuersecret 
In [39]: access_token = Your_access_token 
In [40]: access_token_secret = Your_access_token_secret 
In [41]: auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
In [42]: auth.set_access_token(access_token, access_token_secret) 
In [43]: api = tweepy.API(auth) 
In [48]: user = api.get_user(1088398616)               

In [49]: user.screen_name 
Out[49]: u'saimadhup' 

Để có được user id từ tên màn hình sử dụng

In [46]: user = api.get_user(screen_name = 'saimadhup') 
In [47]: user.id 
Out[47]: 1088398616 
+0

' AttributeError:' unicode 'đối tượng không có thuộc tính' screen_name'' – Veltro

4

Mặc dù OP rõ ràng chỉ cần tên người dùng cho một id, trong trường hợp nếu người dùng muốn o có được tên người dùng cho một danh sách các id (< 100), sau đó:

def get_usernames(ids): 
    """ can only do lookup in steps of 100; 
     so 'ids' should be a list of 100 ids 
    """ 
    user_objs = api.lookup_users(user_ids=ids) 
    for user in user_objs: 
     print(user.screen_name) 

Đối với bộ lớn hơn của id, bạn chỉ có thể đặt điều này trong một vòng lặp for và gọi phù hợp trong khi tuân theo giới hạn twitter API.

Các vấn đề liên quan