数据龙项目,keyError
Data Dragon items, keyError
所以我 运行 遇到了一个问题,我无法访问他们在 riot json 文件中键入的内容。
http://ddragon.leagueoflegends.com/cdn/11.16.1/data/en_US/item.json 这是官方的 riot link 你可以在他们的 riot api 网站的 Items 下找到它。
如果你这样写:
for key, value in items['data'].items():
print(value)
它返回所有值
如果你这样写:
for key value in items['data'].items():
print(value['name'])
它返回名称,除了 'depth key' 之外的所有其他值[key] 都是这样。我使用了 double for 循环,它最终返回了所有的深度值:
for key,value in items['data'].items():
for k,v in value.items():
if k == 'depth':
print(v)
但它并没有救我,因为我想写一些东西,如果 'depth' == 3 我想将项目 'name' 附加到列表中。
我想,也许这是一个错误,因为这个文件中的第一个项目没有 'depth' 键,所以我写了一个例外,但它没有用。
只需使用get()
方法获取特定键的值。然后您可以将它与所需的值进行比较。对于您的情况,列表理解和简单检查可以完成这项工作:
names_list = [v.get('name') for v in items['data'].values() if v.get('depth') == 3]
所以我 运行 遇到了一个问题,我无法访问他们在 riot json 文件中键入的内容。 http://ddragon.leagueoflegends.com/cdn/11.16.1/data/en_US/item.json 这是官方的 riot link 你可以在他们的 riot api 网站的 Items 下找到它。
如果你这样写:
for key, value in items['data'].items():
print(value)
它返回所有值 如果你这样写:
for key value in items['data'].items():
print(value['name'])
它返回名称,除了 'depth key' 之外的所有其他值[key] 都是这样。我使用了 double for 循环,它最终返回了所有的深度值:
for key,value in items['data'].items():
for k,v in value.items():
if k == 'depth':
print(v)
但它并没有救我,因为我想写一些东西,如果 'depth' == 3 我想将项目 'name' 附加到列表中。 我想,也许这是一个错误,因为这个文件中的第一个项目没有 'depth' 键,所以我写了一个例外,但它没有用。
只需使用get()
方法获取特定键的值。然后您可以将它与所需的值进行比较。对于您的情况,列表理解和简单检查可以完成这项工作:
names_list = [v.get('name') for v in items['data'].values() if v.get('depth') == 3]