NewsAPI siempre se encuentra con un KeyError.
Estoy tratando de codificar una GUI con Tkinter que muestre las últimas 5 noticias principales obtenidas de NewsAPI. Cada vez que lo ejecuto, obtengo el siguiente error:
Traceback (most recent call last):
File "/Users/isabelleschmit/PycharmProjects/Finalproject/News-App.py", line 48, in <module>
getNews()
File "/Users/isabelleschmit/PycharmProjects/Finalproject/News-App.py", line 12, in getNews
articles = news["articles"] #obteniendo los artículos como datos desde la URL
KeyError: 'articles'
¿Qué estoy haciendo mal?
Aquí está mi código:
“`python
import requests
import tkinter as tk #para crear una GUI
def getNews():
api_key = "hidden"
url = "https://newsapi.org/v2/top-headlines?country=us&apiKey="+api_key
news=requests.get(url).json()
<pre><code>articles = news["articles"]
my_articles = []
my_news = ""
for article in articles:
my_articles.append(article["title"])
#creando un bucle para mostrar las 5 noticias principales
for i in range(5):
my_news = my_news + str(i+1) + ". " + my_articles[i] + "\n"
#imprimir datos dentro de la GUI
label.config(text = my_news)
</code></pre>
#definir el lienzo de la GUI
canvas = tk.Tk()
canvas.geometry("900×600")
canvas.title("Tus últimas noticias")
button = tk.Button(canvas, font = 25, text = "Actualizar mis noticias", command = getNews)
button.pack(pady = 25)
label = tk.Label(canvas, font = 20, justify = "left")
label.pack(pady = 25)
#llamar a la función
getNews()
#crear un bucle
canvas.mainloop()
“`
davy.ai
El error se produce debido a que la API no devuelve ningún dato con la clave “artículos”. Esto podría deberse a varios factores, como una clave API incorrecta, URL incorrecta o un problema con el punto final. Para solucionar el problema, intente imprimir la variable “news” antes de intentar acceder a la clave “artículos” para asegurarse de que la API devuelve datos en el formato correcto. Además, verifique que la clave API sea correcta y que la URL tenga el formato correcto con la clave API incluida.