Yahoo nos ofrece una serie de herramientas útiles para nuestro entorno de desarrollo y entre esas se encuentra «The Yahoo Weather API», la cual como su nombre lo dice sirve para obtener información del clima de localizades puntuales tanto el clima actual como un pronostico de varios días futuros.
Yahoo Weather Console
Este site ofrece una forma super útil para probar esta api y jugar realizando consultas:
Tienes la posibilidad de realizar las consultas tanto por locación (lat-long) y por woeid (Where On Earth IDentifier) este ultimo se puede encontrar tanto en el site de Yahoo weather o en este lugar Buscador de woeid
Informacion del Clima de New York City
select * from weather.forecast where woeid=2459115
Este resultado tiene información en Millas y Grados farenheit, en caos de querer la información en celsius solo basta con modificar la consulta de esta manera:
select * from weather.forecast where woeid=2459115 and u = 'c'
Para poder realizar una búsqueda con la ubicación (lat-long) se realiza de esta manera:
Cuando se realice una consulta con la ubicación debe de tener en cuenta hacer una consulta previa para confirmar que retorna la ciudad correcta.
select * from weather.forecast where woeid in (SELECT woeid FROM geo.places WHERE text='(40.6453531,-74.0150372)') and u = 'c'
Python
Para consumir esta api con python procedemos a lo siguiente:
Tener en cuenta que para poder realizar una peticion a Weather API hay que crear una cuenta en el portal de Yahoo y crear una app
Instalar la libreria «Requests» para realizar peticiones HTTP.
pip install requests
import requests #URL Base baseurl = "https://query.yahooapis.com/v1/public/yql" #Query query = "select * from weather.forecast where woeid in (SELECT woeid FROM geo.places WHERE text='({}, {})') and u = 'c'" #Parametros params = {} params['q'] = query.format(lat, lon) params['format'] = 'json' #Ejecutar la peticion result = requests.get(baseurl, params=params)
Referencias
Yahoo Weather Documentacion
Yahoo Weather Consola