Commit 6663e798 by Patryk Czarnik

Przykład pobierania pogody

parent 9d82701c
import requests
miasto = input('Podaj nazwę miasta: ')
# Dokończ: wyślij zapytanie o miasto, odczytaj współrzędne
# zadaj zapytanie o prognozę
# wypisz bieżacą pogodę oraz listę temperatur
json = requests.get(f'https://geocoding-api.open-meteo.com/v1/search?name={miasto}').json()
miejsce = json['results'][0]
# Jeśli nie znajdzie żadnego takiego miejsca, to tu program się wykrzaczy
lat, lon, country, name = miejsce['latitude'], miejsce['longitude'], miejsce['country'], miejsce['name']
print(f'Znalazłem miejscowość {name} w kraju {country}')
json = requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}&current_weather=true&hourly=temperature_2m').json()
current = json['current_weather']
print('Temperatura:', current['temperature'])
print('Wiatr:', current['windspeed'])
# print('Daty:', json['hourly']['time'])
# print('Temperatury:', json['hourly']['temperature_2m'])
# Przeglądanie dwóch list na raz: funkcja zip
print('\nPrognozowane temperatury:')
for dt, temp in zip(json['hourly']['time'], json['hourly']['temperature_2m']):
print(dt, temp)
package pogoda;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JOptionPane;
import jakarta.json.Json;
import jakarta.json.JsonArray;
import jakarta.json.JsonObject;
import jakarta.json.JsonReader;
import jakarta.json.JsonValue;
public class PobierzPogodeDlaMiasta {
public static void main(String[] args) {
try {
double lat = 0;
double lon = 0;
String miasto = JOptionPane.showInputDialog("Podaj nazwę miasta: ");
URL url = new URL("https://geocoding-api.open-meteo.com/v1/search?name=" + miasto);
try(InputStream input = url.openStream();
JsonReader reader = Json.createReader(input)) {
JsonObject json = reader.readObject();
JsonArray results = json.getJsonArray("results");
System.out.println("Znalezione lokalizacje:");
for (JsonValue result : results) {
System.out.println(result);
}
JsonObject loc = results.getJsonObject(0);
lat = loc.getJsonNumber("latitude").doubleValue();
lon = loc.getJsonNumber("longitude").doubleValue();
}
url = new URL("https://api.open-meteo.com/v1/forecast?latitude=" + lat + "&longitude="+ lon +"&current_weather=true&hourly=temperature_2m");
try(InputStream input = url.openStream();
JsonReader reader = Json.createReader(input)) {
JsonObject json = reader.readObject();
JsonObject weather = json.getJsonObject("current_weather");
System.out.println(weather);
System.out.println("T = " + weather.getJsonNumber("temperature").doubleValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment