Jakub Škrabánek 4 weeks ago
parent
commit
a5d64b30e1
  1. 52
      23_pokemon_requests/pokemon.py

52
23_pokemon_requests/pokemon.py

@ -0,0 +1,52 @@
#pip install matplotlib pillow requests termcolor
import requests
import random
import os
from io import BytesIO #modul pro vytvoření virtualního souboru v RAM
from PIL import Image
from termcolor import colored
def nahodny_pokemon():
print("--- Generátor náhodného Pokémona ---")
poke_id = random.randint(1,151)
url = f"https://pokeapi.co/api/v2/pokemon/{poke_id}"
print(f"Začínám hledat pokemona s id:{colored(poke_id,"blue")}")
try:
#odeslání požadavku
response = requests.get(url)
response.raise_for_status()
#zpracování dat
data = response.json()
#zpracujeme detaily (pokeapi vrací decimety a hektogramy)
jmeno = data["name"].capitalize()
vaha_kg = data["weight"] / 10
vyska_m = data["height"] / 10
obrazek_url = data["sprites"]["front_default"]
typy = [t["type"]["name" ] for t in data["types"]]
#výpis
print(f"Objevil se {colored(jmeno,"green")}")
print("-----------------------------------------")
print(f"Typ: {typy}")
print(f"Výška: {vyska_m} m")
print(f"Váha: {vaha_kg} kg")
print(f"Obrázek: {obrazek_url}")
#Stažení a zobrazení obrázku
if obrazek_url:
print(f"Stahuji obrázek pro {jmeno}...")
img_response = requests.get(obrazek_url)
img_response.raise_for_status()
#načtení obrázku do paměti a otevření z paměti (Bez ukládání na disk)
image_data = BytesIO(img_response.content)
img = Image.open(image_data)
print(f"Zobrazuji obrázek. Zavřete okno pro pokračování..")
except Exception as e:
print("chyba: {e}")
if __name__ == "__main__":
nahodny_pokemon()
Loading…
Cancel
Save