Hola, En efecto el error es porque no encuentra la key en el diccionario. De hecho hice un print de la variable que obtienes tras llamar a la API, y al no tener un API KEY válido no viene el elemento "main" dentro del diccionario.
Este es el json de respuesta convertido a diccionario: {'cod': 401, 'message': 'Invalid API key. Please see http://openweathermap.org/faq#error401 for more info.'} Fíjate que si viene el cod (y por eso no se cae en esa línea), pero no viene nada mas, lo que haría yo en ese if es validar respuestas distintas a 200. Raro si, que me creé una cuenta para usar la API, y no me funciona la API KEY. Debe estar desactualizado el tutorial. Saludos. On Thu, Jul 2, 2020 at 6:30 PM Lemarchand Barker <lemarchand8...@gmail.com> wrote: > Hola, este es mi código: > > import requests > import json > > api_key = "API_KEY" > > url = "http://api.openweathermap.org/data/2.5/weather?q=sp" > > nombre_ciudad = input("Ingrese nombre de la ciudad: ") > > complete_url = url + "appid=" + api_key + "&q=sp" + nombre_ciudad > > response = requests.get(complete_url) > > x = response.json() > > if x["cod"] != "404": > > y = x["main"] > > temperatura_actual = y["temp"] > > celsius = temperatura_actual - 273.15 > > presion_actual = y["pressure"] > > humedad_actual = y["humidity"] > > z = x["clima"] > > descripcion = z[0]["descripcion"] > > print(f"Temperatura: {celsius}°") > print(f"Presión atmosférica: {presion_actual} hPa") > print(f"Humedad: {humedad_actual} %") > print(f"Descripción: {descripcion}") > > else: > print("Ciudad no encontrada") > > La salida es la siguiente: > > /usr/bin/python3.8 /home/raiden/Programacion/weather/weather.py > Ingrese nombre de la ciudad: Rosario > Traceback (most recent call last): > File "/home/raiden/Programacion/weather/weather.py", line 18, in <module> > y = x["main"] > KeyError: 'main' > > El código original es este: > Python-find-current-weather-of-any-city-using-openweathermap-api/ > <https://www.geeksforgeeks.org/python-find-current-weather-of-any-city-using-openweathermap-api/> > > Saludos y gracias > > > El jue., 2 jul. 2020 a las 18:20, Gerardo Diez (< > gerardo.diez.gar...@gmail.com>) escribió: > > > > Hola, > > > > No soy precisamente un experto, pero yo normalmente voy poniendo prints > /liga por todos lados para que me vaya mostrando el contenido de las > cadenas. > > > > No recuerdo muy bien el funcionamiento de input pero puede ser que el > string que se esté incorporando lleve un salto de línea final ( \n)? > > > > Si es así mira la función strip > > > > Un saludo > > > > El jue., 2 jul. 2020 22:01, lemarchand8679 <lemarchand8...@gmail.com> > escribió: > >> > >> Hola, había escrito para comentar que había solucionado el > inconveniente de KeyError, y es cierto en parte. Digo en parte porque si > escribo desde 0 para hacer algunas modificaciones, me tira ese error al > introducir una ciudad, y si hago un copy-paste del código funciona y la > verdad no se por qué, alguna idea? Gracias > >> > >> > >> > >> Enviado desde mi smartphone Samsung Galaxy. > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es@python.org > >> https://mail.python.org/mailman/listinfo/python-es > > > > _______________________________________________ > > Python-es mailing list > > Python-es@python.org > > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es