[Python-es] [Consulta] Sobre keyerror

David Suárez david.suarez en yahoo.com
Jue Jul 2 18:58:22 EDT 2020


Vero,

el problema que veo es que tienes la cadena "sp" de sobra tanto en la
variable url como cuando generas complete_url y creo que no deberían ir
allí, aunque no he podido checarlo por lo de la llave API.

El jue., 2 de jul. de 2020 a la(s) 17:30, Lemarchand Barker (
lemarchand8679 en gmail.com) escribió:

> 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.garcia en 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 <lemarchand8679 en 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 en python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > https://mail.python.org/mailman/listinfo/python-es
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200702/7544de6c/attachment.html>


Más información sobre la lista de distribución Python-es