Back to posts Edit this post
Copy content

16 Mar 18:08

zadanko kotrys
import requests import json query = 'https://pokeapi.co/api/v2/pokemon/pikachu' response = requests.get(query) if response.status_code == 404: print("Nie znaleziono pokemona") elif response.status_code == 200: data = response.json() with open('data.json', 'w') as f: json.dump(data, f) print(f"Name: {data['name']}") print("Moves:", end="") for move in data["moves"]: print(f"{move['move']['name']}", end=", ") print("") print(f"Weight: {data['weight']}") print("Types:", end="") for t in data["types"]: print(t["type"]["name"], end=", ") print("") query = "https://www.poznan.pl/mim/plan/map_service.html?mtype=pub_transport&co=parking_meters" response = requests.get(query) data = response.json() print("Strefy płatnego parkowania:") strefy = [] if response.status_code == 200: for feature in data["features"]: if feature["properties"]["zone"] not in strefy: strefy.append(feature["properties"]["zone"]) print(", ".join(strefy)) else: print("Nie można pobrać danych o strefach płatnego parkowania.") wybrana_strefa = "Śródmiejska SPP Jeżyce" ulice = set() for feature in data["features"]: if feature["properties"]["zone"] == wybrana_strefa: # Usuń numer z ulicy (np. "Kościelna 10" -> "Kościelna") ulica = feature["properties"]["street"].split()[0] ulice.add(ulica) print(f"Ulice w strefie {wybrana_strefa}:") print(", ".join(sorted(ulice))) print("API FASTAPI:") from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Dict, List import uvicorn app = FastAPI() rooms: Dict[str, str] = {} # nazwa pokoju -> opis reservations: Dict[str, List[Dict[str, str]]] = {} # nazwa pokoju -> lista rezerwacji class RoomModel(BaseModel): name: str description: str class ReservationModel(BaseModel): who: str when: str # "YYYY-MM-DD" @app.get("/") def root(): total_rooms = len(rooms) total_reservations = sum(len(r) for r in reservations.values()) return { "state": "OK", "data": { "rooms": total_rooms, "reservations": total_reservations, "message": "System rezerwacji pomieszczeń" } } @app.get("/clear") def clear(): try: rooms.clear() reservations.clear() return {"state": "OK"} except Exception: return {"state": "ERROR"} @app.get("/rooms") def get_rooms(): return {"state": "OK", "rooms": list(rooms.keys())} @app.get("/reservations/{room}") def get_reservations(room: str): if room not in rooms: return {"state": "ERROR", "message": f"Nie mam pokoju {room}."} return {"state": "OK", "data": reservations.get(room, [])} @app.get("/print/rooms") def print_rooms(): data = [f"Pokój {name} {desc}" for name, desc in rooms.items()] return {"state": "OK", "data": data} @app.get("/print/reservations/{room}") def print_reservations(room: str): if room not in rooms: return {"state": "ERROR", "message": f"Nie mam pokoju {room}."} data = [f"{r['who']} zarezerwował termin {r['when']}" for r in reservations.get(room, [])] return {"state": "OK", "data": data} @app.post("/rooms/add") def add_room(room: RoomModel): if room.name in rooms: return {"state": "ERROR", "data": {"room": room.name, "message": f"Pokój {room.name} jest już w systemie"}} rooms[room.name] = room.description reservations[room.name] = [] return {"state": "OK", "data": {"room": room.name, "message": f"Pokój {room.name} został dodany do systemu"}} @app.post("/reservations/{room}/add") def add_reservation(room: str, reservation: ReservationModel): if room not in rooms: return {"state": "ERROR", "message": f"Nie mam pokoju {room}."} for r in reservations[room]: if r["when"] == reservation.when: return {"state": "ERROR", "message": f"Termin {reservation.when} jest już zajęty."} reservations[room].append({"who": reservation.who, "when": reservation.when}) return {"state": "OK", "data": {"room": room, "message": f"Rezerwacja dodana dla {reservation.who} na termin {reservation.when}"}} if __name__ == '__main__': uvicorn.run(app) #uvicorn fastapi_app:app --reload

No files