[Python-es] [Consulta] Sobre keyerror

Lemarchand Barker lemarchand8679 en gmail.com
Jue Jul 2 19:21:42 EDT 2020


Hola, el código de api key funciona, porque me registré y lo usé y funcionó.
Lo de sp fue más que nada para probar, corresponde al Multilingual support.
Incluso cuando hice copy-paste del código sin usar el sp, funcionaba
perfecto. Lo saqué de acá: https://openweathermap.org/current. Lo del
multilingual está ya casi al final de la página.
La url que uso es esta: api.openweathermap.org/data/2.5/weather? que es la
misma que figura en la página. Reitero, el problema me salta cada vez que
copio el código de forma manual, con copy-paste ningún problema.
Saludos

El jue., 2 jul. 2020 a las 20:00, David Suárez vía Python-es (<
python-es en python.org>) escribió:

> 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
>>
> _______________________________________________
> 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/621ffa86/attachment.html>


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