Python Projects: Display the weather forecast
Python Web Project-6 with Solution
Create a Python project to display the weather forecast of a given city.
Use the Weather API of openweathermap.org
To create a A/c go to
https://home.openweathermap.org/users/sign_up
Sample Output:
Input a location: London {'base': 'stations', 'clouds': {'all': 35}, 'cod': 200, 'coord': {'lat': 51.5085, 'lon': -0.1257}, 'dt': 1611550212, 'id': 2643743, 'main': {'feels_like': 268.76, 'humidity': 86, 'pressure': 1005, 'temp': 272.54, 'temp_max': 273.15, 'temp_min': 271.48}, 'name': 'London', 'sys': {'country': 'GB', 'id': 1414, 'sunrise': 1611560914, 'sunset': 1611592611, 'type': 1}, 'timezone': 0, 'visibility': 10000, 'weather': [{'description': 'scattered clouds', 'icon': '03n', 'id': 802, 'main': 'Clouds'}], 'wind': {'deg': 0, 'speed': 2.06}} Input a location: New York {'base': 'stations', 'clouds': {'all': 90}, 'cod': 200, 'coord': {'lat': 40.7143, 'lon': -74.006}, 'dt': 1611550309, 'id': 5128581, 'main': {'feels_like': 266.17, 'humidity': 50, 'pressure': 1021, 'temp': 270.42, 'temp_max': 271.15, 'temp_min': 269.26}, 'name': 'New York', 'sys': {'country': 'US', 'id': 4610, 'sunrise': 1611490354, 'sunset': 1611525811, 'type': 1}, 'timezone': -18000, 'visibility': 10000, 'weather': [{'description': 'overcast clouds', 'icon': '04n', 'id': 804, 'main': 'Clouds'}], 'wind': {'deg': 0, 'speed': 1.54}} Input a location: Brasilia {'base': 'stations', 'clouds': {'all': 0}, 'cod': 200, 'coord': {'lat': -15.7797, 'lon': -47.9297}, 'dt': 1611550411, 'id': 3469058, 'main': {'feels_like': 292.67, 'humidity': 64, 'pressure': 1017, 'temp': 292.9, 'temp_max': 295.15, 'temp_min': 290.37}, 'name': 'Brasília', 'sys': {'country': 'BR', 'id': 8336, 'sunrise': 1611565087, 'sunset': 1611611388, 'type': 1}, 'timezone': -10800, 'visibility': 10000, 'weather': [{'description': 'clear sky', 'icon': '01n', 'id': 800, 'main': 'Clear'}], 'wind': {'deg': 100, 'speed': 1.54}}
Sample Solution:
Python Code:
#Source: https://bit.ly/2MjeQ6z
import requests
APPID = "**************************" # <-- Put your OpenWeatherMap appid here!
URL_BASE = "http://api.openweathermap.org/data/2.5/"
def current_weather(q: str = "", appid: str = APPID) -> dict:
"""https://openweathermap.org/api"""
return requests.get(URL_BASE + "weather", params=locals()).json()
def weather_forecast(q: str = "", appid: str = APPID) -> dict:
"""https://openweathermap.org/forecast5"""
return requests.get(URL_BASE + "forecast", params=locals()).json()
def weather_onecall(lat: float = 55.68, lon: float = 12.57, appid: str = APPID) -> dict:
"""https://openweathermap.org/api/one-call-api"""
return requests.get(URL_BASE + "onecall", params=locals()).json()
if __name__ == "__main__":
from pprint import pprint
while True:
location = input("Input a location: ").strip()
if location:
pprint(current_weather(location))
else:
break
Flowchart:
Improve this sample solutions and post your code through Disqus
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/projects/python/web-programming/python-web-programming-6.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics