Tutorial: Obtener el estado del tiempo usando Python

Python es un lenguaje de programación flexible que permite realizar multiples tareas de manera rápida y sencilla.

A diferencia de otros lenguajes de programación, con Python podemos ejecutar procesos de lo mas sencillos usando muy pocas líneas de código.

Para probarlo, en este tutorial te enseñare a obtener el estado del tiempo usando Python.

No será necesario instalar ninguna librería ya que trabajaremos con los módulos nativos de Python, esto hará que todo sea más sencillo.

openwheater

Un requerimiento muy importante será registrarnos en el sitio web de openweather, una vez registrados deberemos obtener nuestra API KEY, en la sección de api keys en tu cuenta de openweather o dando clic en este enlace. Si no existe ninguna disponible deberás crear una pero el proceso es sencillo.

Para obtener el estado del tiempo será necesario conectarnos a la API de openweather, el cual nos dará acceso a datos meteorológicos de muchas ciudades alrededor del mundo.

Para hacer esto necesitamos dos módulos básicos que debemos importar a nuestro código, definir la URL de la API a la cual solicitaremos informacion y lo mas importante que es nuestra API KEY.

import requests, json
 
# ingresamos la API KEY
api_key = “API_Key"
 
# direccion web desde donde solicitaremos la informacion
base_url = "http://api.openweathermap.org/data/2.5/weather?"
 
# ciudad (se lo mas especifico posible en el nombre)
city_name = “Mexico”
 
# esta es la URL completa con la informacion concatenada para realizar la petición correcta
complete_url = base_url + "appid=" + api_key + "&q=" + city_name

api_key: La API KEY que creamos en el sitio web de openweather.

base_url: Dirección web a la cual realizaremos las consultas.

city_name: Es la ciudad objetivo, servirá para retornar la informacion especifica de un área.

complete_url: Esta será la URL con toda la informacion anterior concatenada de forma correcta para solicitar los datos.

Una vez que tenemos los datos listos solo nos resta realizar la petición al servidor para que nos retorne toda la informacion del estado del tiempo, para hacer esto se hace de la siguiente manera:

# Ejecutamos la consulta
response = requests.get(complete_url)
 
# Obtenemos la respuesta en formato JSON
x = response.json()

Ahora, si se ejecuto de manera correcta, recuerda que necesitas internet obviamente, la variable x contendrá una serie de datos para procesar la respuesta del servidor.

Como ya dijimos, x contiene una serie de datos. Uno de los mas importantes es el estado de la respuesta ya que nos dice si se ejecutó de manera correcta, hubo errores, la ciudad era invalidad, etc.

Puedes consultar este tipo de respuesta en la documentación del sitio web, pero para no hacer mas largo esto, el valor de respuesta que nos importa es el “200” que indica que la consulta de informacion se realizó correctamente.

Solo nos resta hacer la comparación a dicho valor, y si es correcto extraer el resto de informacion como temperatura, presión atmosférica y demás datos de interés.

Importante, los datos de la API están en ingles y se retornan en dicho idioma. Los grados de temperatura son en Kelvin aunque puedes hacer fácilmente la conversión a centígrados.

if x["cod"] == "200":
    # En “main” se encuentra la informacion principal del estado del tiempo
    y = x["main"]
    
    # Almacenamos la temperatura
    current_temperature = y["temp"]
 
    # presion atmosferica
    current_pressure = y["pressure"]
 
    # humedad
    current_humidity = y["humidity"]

Y eso seria todo, puedes procesar la informacion de la manera que desees. Puedes simplemente imprimirla o almacenarla y procesarla usando otro sistema o incluso desde una interfaz de usuario.

Si deseas obtener mas informacion sobre todos los parámetros de datos o las distintas tipos de API disponibles, puedes consultarlo en el siguiente botón, tambien puedes descargar el codigo fuente:

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.