16 Mar 17:47
zad2
import requests
PARKING_METERS_URL = (
"https://www.poznan.pl/mim/plan/map_service.html"
"?mtype=pub_transport&co=parking_meters"
)
def fetch_parking_meters() -> dict:
response = requests.get(PARKING_METERS_URL, timeout=15)
response.raise_for_status()
return response.json()
def get_zones(data: dict) -> list[str]:
features = data.get("features", [])
zones = {
feature.get("properties", {}).get("zone", "").strip()
for feature in features
if feature.get("properties", {}).get("zone")
}
return sorted(zones)
def get_streets_for_zone(data: dict, selected_zone: str) -> list[str]:
features = data.get("features", [])
streets = {
feature.get("properties", {}).get("street", "").strip()
for feature in features
if feature.get("properties", {}).get("zone", "").strip().lower() == selected_zone.lower()
and feature.get("properties", {}).get("street")
}
return sorted(streets)
def main() -> None:
try:
data = fetch_parking_meters()
print("Nazwy stref płatnego parkowania:")
zones = get_zones(data)
for zone in zones:
print(f" - {zone}")
print()
selected_zone = input("Podaj wybraną strefę: ").strip()
if not selected_zone:
print("Nie podano nazwy strefy.")
return
streets = get_streets_for_zone(data, selected_zone)
if not streets:
print(f"Nie znaleziono ulic dla strefy: {selected_zone}")
return
print(f"\nUlice z parkometrami dla strefy '{selected_zone}':")
for street in streets:
print(f" - {street}")
except requests.RequestException as exc:
print(f"Błąd podczas pobierania danych: {exc}")
except ValueError as exc:
print(f"Błąd danych JSON: {exc}")
if __name__ == "__main__":
main()