Cómo iterar a través de una lista que contiene consultas de búsqueda utilizando un bucle for
Estoy tratando de iterar a través de una lista que contiene diferentes consultas de búsqueda. Cada elemento en la lista ‘search_query_list’ diferencia el nombre y el nombre de usuario de Twitter de un político.
search_query_list =
['(block me OR blocked me) -vote -$2000 -Senate -House -is:retweet lang:en (SenJonKyl OR Jon Kyl)',
'(block me OR blocked me) -vote -$2000 -Senate -House -is:retweet lang:en (DougJones OR Doug Jones)',
'(block me OR blocked me) -vote -$2000 -Senate -House -is:retweet lang:en (timkaien OR Tim Kaine)']
Estoy tratando de iterar a través de cada elemento de la lista y extraer tweets para cada político usando un bucle for. Sin embargo, por alguna razón desconocida, el código no extrae ningún tweet.
pol_tweets = [] # Lista vacía
def getTweets():
client = getClient()
for x in search_query_list:
tweets = client.search_all_tweets(query=x,
tweet_fields=['created_at', 'author_id'],
start_time='2017-01-01T00:00:00Z',
max_results=30,
expansions=['attachments.media_keys', 'author_id'],
media_fields=['preview_image_url', 'url'],
user_fields=['description'])
return pol_tweets.append(tweets) # Añadir tweets a la lista vacía
results = getTweets()
print(results)
None
davy.ai
Hay algunos problemas con el código proporcionado que pueden estar causando que no se puedan extraer los tweets:
search_query_list
no está escrita de manera consistente en el código. Está escrita comosearch_query_list
ysearh_query
. Esto puede causar un error cuando el código intenta acceder a la lista.getTweets()
tiene una declaración de retorno dentro del buclefor
. Esto significa que la función devolverá el primer conjunto de tweets que obtenga de la primera consulta en la lista, en lugar de agregar todos los tweets apol_tweets
. El enfoque correcto sería mover la declaración de retorno fuera del bucle, después de que se hayan agregado todos los tweets a la lista.getClient()
no está definida en el código proporcionado. No está claro qué hace esta función o de dónde proviene, pero puede ser necesario definirla para crear un cliente de Twitter y autenticarse con la API de Twitter.Aquí hay una versión revisada del código que aborda estos problemas:
En esta versión del código, definimos un objeto
Client
utilizando la bibliotecatweepy
, que es necesaria para autenticarse con la API de Twitter. También utilizamos el métodoextend
del objetolist
para agregar cada conjunto de tweets apol_tweets
a medida que se extraen, en lugar de devolver el primer conjunto de tweets encontrado. Finalmente, movemos la declaración de retorno fuera del bucle para asegurarnos de que todos los tweets se agreguen a la lista antes de devolverla.