w3resource

Python Project - Create a Weather Application


Weather Application:

Create a program that fetches and displays weather information for a given location.

Input values:
User provides the location (e.g., city name, zip code) for which weather information is requested.

Output value:
Visual representation of the weather information fetched for the given location, including temperature, humidity, wind speed, etc.

Example:

Input values:
Location: New York City
Output value:
Visual representation of New York City weather information:
- Temperature: 55°F
- Humidity: 70%
- Wind speed: 10 mph
- Weather Conditions: Cloudy
Input values:
Location: London
Output value:
Visual representation of weather information for London:
- Temperature: 12°C
- Humidity: 80%
- Wind speed: 15 km/h
- Weather Conditions: Rainy
Input values:
Location: Tokyo
Output value:
Visual representation of weather information for Tokyo:
- Temperature: 20°C
- Humidity: 60%
- Wind speed: 8 km/h
- Weather conditions: Sunny 

OpenWeather presents you a comprehensive weather solution to get accurate and industry-specific weather forecasts, timely severe weather alerts, detailed weather overview, and expert consultations from OpenWeather professional meteorologists for informed decision-making, worldwide. All you need is to register and get an API key to make requests from OpenWeather.

Solution 1: Weather Application Using Requests and OpenWeatherMap API

Code:

import requests

# Function to fetch weather data from OpenWeatherMap API
def get_weather(city_name, api_key):
    base_url = f"https://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={api_key}"
    
    # Make the request to the API
    response = requests.get(base_url)
    
    # Check if the request was successful
    if response.status_code == 200:
        # Parse the JSON response
        data = response.json()
        main = data['main']
        wind = data['wind']
        weather = data['weather'][0]
        
        # Prepare the weather data
        weather_info = {
            'city': city_name,
            'temperature': main['temp'],
            'humidity': main['humidity'],
            'wind_speed': wind['speed'],
            'conditions': weather['description']
        }
        return weather_info
    else:
        return None

# Main code block
if __name__ == "__main__":
    api_key = '******************************'  # Replace with your actual OpenWeatherMap API key
    city_name = input("Enter city name: ")
    
    # Fetch weather data
    weather_data = get_weather(city_name, api_key)
    
    # Display the results
    if weather_data:
        print(f"Weather in {weather_data['city']}:")
        print(f"Temperature: {weather_data['temperature']}°C")
        print(f"Humidity: {weather_data['humidity']}%")
        print(f"Wind Speed: {weather_data['wind_speed']} m/s")
        print(f"Conditions: {weather_data['conditions']}")
    else:
        print("City not found or API error.")

Output:

 Enter city name: London
Weather in London:
Temperature: 287.6°C
Humidity: 91%
Wind Speed: 2.68 m/s
Conditions: broken clouds
Enter city name: Paris
Weather in Paris:
Temperature: 290.19°C
Humidity: 95%
Wind Speed: 3.09 m/s
Conditions: light intensity shower rain
Enter city name: New York
Weather in New York:
Temperature: 279.66°C
Humidity: 69%
Wind Speed: 3.6 m/s
Conditions: clear sky

Explanation:

  • OpenWeatherMap API: Uses the requests library to fetch weather data from OpenWeatherMap.
  • API Key: Requires an API key for accessing weather data.
  • Input and Output: Takes a city name as input and displays temperature, humidity, wind speed, and weather conditions.
  • Error Handling: Handles errors for invalid city names or API issues.


Follow us on Facebook and Twitter for latest update.