首页 > 解决方案 > 以 api/ 格式搜索列表 url 搜索 api

问题描述

我想为 pokemon api ID 生成 6 个随机数。放入清单。然后在 url 搜索中使用 6 个数字。该网址无法识别该列表。我需要将列表转换为数字。我不确定如何将它们格式化为 url。

import random
import requests

pokemon_ID = []

# pokemon_ID_add = str(pokemon_ID)[1:-1]
# pokemon_ID2 = str(pokemon_ID)[1:-1]


for i in range(0,6):
        number = random.randint(1 ,151)
        while i in pokemon_ID:
            number = random.randint(1, 151)
        pokemon_ID.append(number)




url = 'https://pokeapi.co/api/v2/pokemon/{}/'.format(pokemon_ID)
response = requests.get(url)
pokemon = response.json()

print(pokemon)

标签: stringlistapiurlsearch

解决方案


您可以使用循环遍历随机 ID 并将结果存储到列表中:

import json
import random
import requests

url = "https://pokeapi.co/api/v2/pokemon/{}/"

random_pokemon_ids = [random.randint(1, 151) for i in range(6)]

result = []
for id_ in random_pokemon_ids:
    pokemon = requests.get(url.format(id_)).json()
    result.append(pokemon)

# pretty print the result:
print(json.dumps(result, indent=4))

印刷:

[
    {
        "abilities": [
            {
                "ability": {
                    "name": "rock-head",
                    "url": "https://pokeapi.co/api/v2/ability/69/"
                },
                "is_hidden": false,
                "slot": 1
            },
            {
                "ability": {
                    "name": "lightning-rod",
                    "url": "https://pokeapi.co/api/v2/ability/31/"
                },
                "is_hidden": false,
                "slot": 2
            },
            {
                "ability": {
                    "name": "battle-armor",
                    "url": "https://pokeapi.co/api/v2/ability/4/"
                },
                "is_hidden": true,
                "slot": 3
            }
        ],
        "base_experience": 64,
        "forms": [
            {
                "name": "cubone",
                "url": "https://pokeapi.co/api/v2/pokemon-form/104/"
            }
        ],

...

推荐阅读