Moduł pobierania API danych pogodowych w języku Python

Pobieraj szczegółowe informacje o pogodzie w czasie rzeczywistym w Pythonie, korzystając ze standardowych bibliotek. Poznaj żądania API, konwersje JSON i próbne rozwiązania awaryjne.

Spróbuj w Edytorze

Przegląd

Integracja interfejsów API innych firm jest kluczową umiejętnością współczesnych twórców backendu internetowego. Moduły pobierania pogody łączą programy Python bezpośrednio z serwerami telemetrii klimatycznej na żywo.

Zwykle użylibyśmy zewnętrznego modułu `requests`, ale standardowa biblioteka Pythona udostępnia `urllib.request`, który działa od razu po wyjęciu z pudełka, bez konieczności instalowania zależności.

Ten interaktywny skrypt wykorzystuje publiczny, ogólnodostępny punkt końcowy geokodowania do pobierania współrzędnych i temperatur, ilustrując pętle analizowania try-except, kodowanie adresów URL i odczyty strumieni JSON.

Dane wyjściowe kodu i wykonania

Standardowy skrypt urllib biblioteki wysyłający zapytania do publicznych serwerów telemetrii pogodowej.

weather_fetcher.py
Spróbuj w Edytorze
import urllib.request
import json

def fetch_weather(city_lat, city_lon):
    # Free, open weather API (No authentication key needed)
    url = f"https://api.open-meteo.com/v1/forecast?latitude={city_lat}&longitude={city_lon}&current_weather=true"
    
    print(f"Connecting to Weather API for lat={city_lat}, lon={city_lon}...")
    
    try:
        req = urllib.request.Request(
            url, 
            headers={'User-Agent': 'PyRun Weather Client/1.0'}
        )
        
        with urllib.request.urlopen(req, timeout=5) as response:
            raw_data = response.read().decode('utf-8')
            weather_json = json.loads(raw_data)
            
            current = weather_json.get("current_weather", {})
            temp = current.get("temperature")
            wind = current.get("windspeed")
            
            print("Successfully retrieved weather telemetry!")
            print(f"  Current Temperature: {temp}°C")
            print(f"  Wind Speed:          {wind} km/h")
            
    except Exception as e:
        print(f"Could not retrieve weather details: {e}")

# Run fetch for Tokyo coordinates (lat: 35.6762, lon: 139.6503)
fetch_weather(35.6762, 139.6503)
Wyjście terminala
Connecting to Weather API for lat=35.6762, lon=139.6503...
Successfully retrieved weather telemetry!
  Current Temperature: 22.4°C
  Wind Speed:          14.2 km/h

Wdrażanie krok po kroku

  • Dodawanie widżetów wyświetlania pogody do niestandardowych interfejsów pulpitu nawigacyjnego
  • Pisanie automatycznych skryptów cron, które ostrzegają użytkowników o ekstremalnych temperaturach
  • Opanowanie protokołów sieciowych urllib i standardowych bibliotek

Często zadawane pytania

Czy ten skrypt może działać w silniku przeglądarkiPyRun?

Tak, backend przeglądarkiPyRunprzechwytuje urllib i żąda żądań gniazd, bezpiecznie konwertując je na zapytania pobierania na poziomie przeglądarki.

Jakie są współrzędne szerokości i długości geograficznej?

Reprezentują współrzędne geolokalizacyjne na Ziemi. Szerokość geograficzna mierzy odległość północ-południe od równika, natomiast długość geograficzna mierzy odległość wschód-zachód od południka zerowego.

Powiązane tematy