-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpokemon-evolution-chain.py
43 lines (26 loc) · 1.51 KB
/
pokemon-evolution-chain.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# coding=utf-8
from urllib.request import Request, urlopen
import json
import re
def getJson(url):
global data
requestData = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
openData = urlopen(requestData).read()
data = json.loads(openData)
return data
pokemonInput = input("Pokemon ID eller navn: ")
pokemonData = getJson('https://pokeapi.co/api/v2/pokemon-species/' + pokemonInput) # Henter all data om spesifikk Pokemon
evoChainUrl = pokemonData["evolution_chain"]["url"] # Henter URL for evolution chain for spesifikk Pokemon fra Pokemon data
evoData = getJson(evoChainUrl)["chain"] # Henter data fra evolution chain
print ("Evolution chain for #" + str(pokemonData["id"]) + " - " + pokemonData["name"].title() + ":")
evoChain = []
rePattern = '/\d+/' # RegEx mønster for å hente ut Pokemon ID fra url
evoChain.append([re.findall(rePattern, str(evoData["species"]["url"]))[0].replace('/', ''), evoData["species"]["name"]]) # Legger til første Pokemon
while (evoData["evolves_to"]):
reResult = re.findall(rePattern, str(evoData["evolves_to"][0]["species"]["url"]))
evoChain.append([reResult[0].replace('/', ''), evoData["evolves_to"][0]["species"]["name"]]) # Legger til Pokemon ID og navn
evoData = evoData["evolves_to"][0] # Går videre til neste Pokemon i evolution chain
# if not evoData["evolves_to"]: # Hvis det ikke finnes flere Pokemons i evolution chain
# print ("Finished")
for pokemon in evoChain:
print ("#" + pokemon[0] + " - " + pokemon[1].title())