1

我正在尝试使用Pokeapi 来创建 pokedex 的快速版本。我只想让用户输入一个口袋妖怪的名字,然后返回他们选择的口袋妖怪的名字,以及其他一些小细节。我可以让我的代码打印出口袋妖怪的整个json文件,而不仅仅是特定信息。我正在使用 Python 3。

我当前的代码如下所示:

import requests
import pprint


def main():
    poke_base_uri = "https://pokeapi.co/api/v2/pokemon/"
    poke_choice = "pidgey"
    pokeresponse = requests.get(f"{poke_base_uri}{poke_choice}/")

    # Decode the response
    poke = pokeresponse.json()
    pprint.pprint(poke)

    print("\nGreat Choice you chose:")
    for name in poke:
        name_info = poke.get(pokemon_species)
        print(name_info.json().get('name'))
4

1 回答 1

3

看起来你很接近。

我将从删除 for 循环开始。你不需要这个。

poke确实包含您要查找的所有信息,但您需要将参数更改为poke.get. 如果您打印出来poke.keys(),它将向您显示 dict 拥有的所有键。您应该看到如下内容:

dict_keys(['abilities', 'base_experience', 'forms', 'game_indices', 'height', 'held_items', 'id', 'is_default', 'location_area_encounters', 'moves', 'name', 'order', 'species', 'sprites', 'stats', 'types', 'weight'])

我认为你想要做的是:

>>> name_info = poke.get("species")
{'name': 'pidgey', 'url': 'https://pokeapi.co/api/v2/pokemon-species/16/'}

您也不需要再调用 .json(),它们实际上在 name_info 对象上不可用。.json 是请求响应对象的一个​​属性(在调用 requests.get 时获得)。它返回一个包含来自站点的请求数据的 python 字典。因为它返回一个普通的 python 字典,所以你可以使用 .get 访问它的所有键和值。

我建议阅读 python 字典。它们是一个非常强大的对象,学会很好地使用它们对于编写漂亮的 python 至关重要。

https://docs.python.org/3/library/stdtypes.html?highlight=dict#dict

于 2020-12-17T22:44:53.250 回答