2015-03-24 26 views

risposta

9

Se si dispone di un valore user_id, è necessario chiamare l'API twitter con lo get_user(user_id) method. L'oggetto utente restituito conterrà il nome utente sotto screen_name.

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

Se si dispone già dell'oggetto Utente da un'altra chiamata API, è sufficiente cercare lo screen_name.

+1

questo è quello che stavo cercando di ottenere, ma ho capito prima che qualcuno ha risposto grazie comunque –

+0

questo non funzionerà per me – Veltro

+0

'AttributeError: oggetto 'unicode' non ha alcun attributo 'screen_name'' – Veltro

7

È possibile utilizzare questo codice per ottenere il nome dello schermo oi id

Per ottenere il nome dello schermo utente id utente

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' 

di ottenere l'ID utente da nome utente schermo

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

' AttributeError:' unicode 'oggetto non ha attributo' screen_name'' – Veltro

4

Sebbene OP abbia chiaramente bisogno del nome utente per un solo ID, nel caso in cui si desideri t o ottenere nomi utente per un elenco di ID (< 100), quindi:

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) 

per i più grandi serie di ID, si può solo mettere questo in un ciclo for e chiamare di conseguenza, mentre obbedendo al limite Twitter API.