Everyone’s doing it! AI tools have been around for quite a while, but they are definitely having a moment, and people are enjoying the thrill of discovery with these new tools.
I thought it would be fun to show a quick and easy way you can use Google Gemini to create a simple Python app that tells you the weather.
Enter this:
Create a Python script that connects to the National Weather Service API and gives the next week’s forecast for a specified location.
Result
Note: The results might be slightly different each time you ask Gemini the same prompt.
import requests import json # Define user-agent header (NWS API requires a custom User-Agent identifying your app) # Format: (your-app-name, your-contact-email@example.com) HEADERS = { "User-Agent": "(MyWeatherApp/1.0, contact@example.com)", "Accept": "application/geo+json" } def get_nws_forecast(latitude: float, longitude: float): """ Retrieves the 7-day weather forecast for a given latitude and longitude using the National Weather Service API. """ # Step 1: Query the /points endpoint to get local grid office metadata points_url = f"https://api.weather.gov/ points/{latitude:.4f},{ longitude:.4f}" try: response = requests.get(points_url, headers=HEADERS, timeout=10) response.raise_for_status() point_data = response.json() # Extract the specific forecast URL endpoint and location details forecast_url = point_data["properties"][" forecast"] location_info = point_data["properties"][" relativeLocation"][" properties"] city = location_info.get("city") state = location_info.get("state") print(f"\nFetching forecast for: {city}, {state} ({latitude}, {longitude})\n" + "=" * 60) # Step 2: Fetch the detailed forecast from the endpoint grid URL forecast_response = requests.get(forecast_url, headers=HEADERS, timeout=10) forecast_response.raise_for_ status() forecast_data = forecast_response.json() # Extract forecast periods (contains day/night detailed breakdowns) periods = forecast_data["properties"][" periods"] for period in periods: name = period["name"] temp = period["temperature"] unit = period["temperatureUnit"] short_forecast = period["shortForecast"] detailed_forecast = period["detailedForecast"] wind_speed = period["windSpeed"] wind_dir = period["windDirection"] print(f"--- {name} ---") print(f"Temperature : {temp}°{unit}") print(f"Wind : {wind_speed} {wind_dir}") print(f"Overview : {short_forecast}") print(f"Details : {detailed_forecast}\n") except requests.exceptions.HTTPError as http_err: print(f"HTTP error occurred: {http_err}") except requests.exceptions. RequestException as req_err: print(f"Request failed: {req_err}") except KeyError as key_err: print(f"Error parsing response JSON key: {key_err}") if __name__ == "__main__": # Example: New York City Coordinates (40.7128° N, -74.0060° W) # Note: NWS API only covers US regions/territories. lat = 40.7128 lon = -74.0060 get_nws_forecast(lat, lon)
Final Details
Of course you also have to know how to install requests and run the Python script on your computer! But Gemini did the coding for you. Sweet!





















