import csv, json, urllib.request def get(url): req = urllib.request.Request(url, headers={"User-Agent": "erd-class"}) return json.load(urllib.request.urlopen(req)) page = get("https://pokeapi.co/api/v2/pokemon?limit=20") # page 1 of the list with open("pokeapi_sample.csv", "w", newline="") as f: out = csv.writer(f) out.writerow(["id", "name", "height_m", "weight_kg", "type_1", "type_2", "hp"]) for item in page["results"]: # each item: a name and a url p = get(item["url"]) # one request per Pokemon types = [t["type"]["name"] for t in p["types"]] + [""] out.writerow([p["id"], p["name"], p["height"] / 10, p["weight"] / 10, types[0], types[1], p["stats"][0]["base_stat"]]) print(page["count"], "Pokemon in the API. Next page:", page["next"])