[Python-es] [Consulta] Sobre keyerror

Lemarchand Barker lemarchand8679 en gmail.com
Jue Jul 2 18:29:33 EDT 2020


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200702/8682a8c8/attachment.html>


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