首页 > 解决方案 > 数据龙物品,keyError

问题描述

所以我遇到了一个问题,我无法访问他们在 riot json 文件中的密钥。 http://ddragon.leagueoflegends.com/cdn/11.16.1/data/en_US/item.json这是官方的防暴链接,你可以在他们的防暴 api 网站上的项目下找到。

如果你写这个:

for key, value in items['data'].items():
    print(value)

它会返回所有值如果你这样写:

for key value in items['data'].items():
    print(value['name'])

它会返回名称,除了“深度键”之外,它与所有其他值 [键] 一样。我使用了双循环,它最终返回了所有的深度值:

for key,value in items['data'].items():
    for k,v in value.items():
        if k == 'depth':
            print(v)

但这并不能拯救我,因为我想写一些类似的东西,如果“深度”== 3,我想将项目“名称”附加到列表中。我想,也许这是一个错误,因为这个文件中的第一个项目没有“深度”键,所以我写了一个异常,但它没有用。

标签: pythonkeyerrorriot-games-api

解决方案


只需使用get()方法来获取特定键的值。然后您可以将其与所需值进行比较。对于您的情况,带有简单检查的列表理解可以完成这项工作:

names_list = [v.get('name') for v in items['data'].values() if v.get('depth') == 3]

推荐阅读