This is some starter code which you could use if you want to use the WeatherAPI. You will need to sign up at to get your API Key.
API Key
Some APIs do not keep their API public and you will need to go on their website and sign up to receive a unique API key.
Make sure you replace "DEMO_KEY" with a real key from the WeatherAPI in the API_KEYvariable.
weatherfetch.py
# Import the requests library to handle HTTP requests
import requests
# API key for WeatherAPI (must be filled in to work)
api_key = "YOUR_KEY"
# Base URL for WeatherAPI
base_url = "http://api.weatherapi.com/v1"
def fetch_weather(city_name):
"""
Fetches the current weather data for a given city using WeatherAPI.
"""
# Construct the complete API request URL
complete_url = f"{base_url}/current.json?key={api_key}&q={city_name}"
# Send an HTTP GET request to the API
response = requests.get(complete_url)
# Check if the request was successful (status code 200)
if response.status_code == 200:
# Return the JSON response as a Python dictionary
return response.json()
else:
# Return None if there was an error with the request
return None
def display_weather_info(weather_data):
"""
Displays weather information from the API response.
"""
if weather_data:
# Extract relevant data from the API response
location = weather_data["location"]["name"] # City name
region = weather_data["location"]["region"] # Region/State
country = weather_data["location"]["country"] # Country
temperature = weather_data["current"]["temp_c"] # Temperature in Celsius
condition = weather_data["current"]["condition"]["text"] # Weather condition (e.g., Sunny, Rainy)
# Print the weather details
print(f"Weather in {location}, {region}, {country}:")
print(f"Temperature: {temperature}°C")
print(f"Condition: {condition}")
else:
# Print an error message if data could not be retrieved
print("Error retrieving weather data.")
#<--------------------------------------------TEST THE FUNCTIONS-------------------------------------------->
Testing the Above
#<--------------------------------------------TEST THE FUNCTIONS-------------------------------------------->
city_name = "Gosford" # Example city, change as needed
# Fetch weather data for the given city
weather_data = fetch_weather(city_name)
# Display the retrieved weather information
display_weather_info(weather_data)