解析时遇到问题 JSON

Trouble with with parsing JSON

我正在尝试使用 Poke api 创建图鉴的快速版本。我只想让用户输入一个宠物小精灵的名字和 return 他们选择的宠物小精灵的名字,以及其他小细节。我可以让我的代码打印出口袋妖怪的整个 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'))

看起来你很接近。

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

poke 确实包含您要查找的所有信息,但您需要将参数更改为 poke.get。 如果你打印出 poke.keys() 它会告诉你字典的所有键。你应该看到这样的东西:

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 时得到的)。它 returns 一个 python 字典,包含从站点请求的数据。因为它 returns 是一个普通的 python 字典,所以您可以使用 .get.

访问它的所有键和值

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

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