Quiero buscar los tweets, extraer el nombre de pantalla de los estados y usarlo para obtener los tweets favoritos anteriores de ese nombre de pantalla. Ahora no sé cómo extraer los nombres de pantalla de los estados y luego cómo usar para pasar a favoritos. Este es mi código (el problema es con la última línea):

import tweepy
consumer_key = ''
consumer_secret = ''
access_token = '' 
access_secret = ''
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
search_results = tweepy.Cursor(api.search,q="Ganesh World").items()

for i in search_results:
    print i.text.encode('utf-8')
    print   api.favorites([i.screen_name])

Está arrojando AttributeError: el objeto de estado no tiene el atributo 'screen_name'

1
Abhishek Sharma 4 sep. 2014 a las 23:33

3 respuestas

La mejor respuesta

No es necesario desperdiciar otra llamada a la API, puede obtenerla de elementos de datos internos, es decir, del autor, y dentro de su json de esta manera:

for i in search_results:
    print i.author._json['screen_name']
2
MohitC 12 sep. 2015 a las 23:07

Prueba esto:

for i in search_results:
    print i.text.encode('utf-8')
    user_details = api.get_user(user_id = i.from_user_id)    
    print api.favorites([user_details.screen_name])

Estás intentando obtener screen_name directamente del tweet. Primero debe obtener id y luego usarlo para obtener el nombre de usuario.

1
ChillarAnand 4 sep. 2014 a las 20:11

Tienes que hacer: i.user.screen_name

0
Fernando Gardeazabal 26 nov. 2019 a las 17:58