Pengambil API Data Cuaca Python
Ambil detail cuaca real-time dengan Python menggunakan perpustakaan standar. Pelajari permintaan API, konversi JSON, dan tiruan fallback.
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.
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}¤t_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)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/hImplementasi 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.