Pengambil API Data Cuaca Python

Ambil detail cuaca real-time dengan Python menggunakan perpustakaan standar. Pelajari permintaan API, konversi JSON, dan tiruan fallback.

Coba di Editor

Ikhtisar

Mengintegrasikan API pihak ketiga adalah keterampilan penting bagi pengembang backend web modern. Pengambil cuaca menghubungkan program Python langsung ke server telemetri iklim langsung.

Biasanya, kita akan menggunakan modul `requests` eksternal, tetapi pustaka standar Python menyediakan `urllib.request` yang berfungsi langsung tanpa memerlukan instalasi dependensi.

Skrip interaktif ini menggunakan titik akhir geocoding akses terbuka publik untuk mengambil koordinat dan suhu, mengilustrasikan loop penguraian coba-kecuali, pengkodean URL, dan pembacaan aliran JSON.

Kode & Output Eksekusi

Skrip urllib perpustakaan standar yang menanyakan server telemetri cuaca publik.

weather_fetcher.py
Coba di Editor
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)
Keluaran Terminal
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

Implementasi Langkah demi Langkah

  • Menambahkan widget tampilan cuaca ke antarmuka dasbor khusus
  • Menulis skrip cron otomatis yang mengingatkan pengguna akan kejadian suhu ekstrem
  • Menguasai urllib dan protokol jaringan perpustakaan standar

Pertanyaan yang Sering Diajukan

Bisakah skrip ini dijalankan di mesin browserPyRun?

Ya, backend browserPyRunmencegat urllib dan meminta permintaan soket, mengubahnya menjadi kueri pengambilan tingkat browser dengan aman.

Apa yang dimaksud dengan koordinat lintang dan bujur?

Mereka mewakili koordinat geolokasi di Bumi. Lintang mengukur jarak utara-selatan dari Khatulistiwa, sedangkan garis bujur mengukur jarak timur-barat dari Meridian Utama.

Topik Terkait