解析时遇到问题 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
我正在尝试使用 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