按位置循环访问列表并从嵌套字典返回值



假设我有一个字典列表

meta_list = [
{"id": 9, "name": "Tennis", "type": "SPORT", "url-name": "tennis"}, 
{"id": 410468520880009, "name": "Live Betting", "type": "OTHER", "url-name": "live-betting"},
{"id": 423407498380010, "name": "China", "type": "COUNTRY", "url-name": "china"},
{"id": 613128412140012, "name": "September 7th 2018", "type": "DATE", "url-name": "september-7th-2018"},
{"id": 643136938410012, "name": "QF", "type": "OTHER", "url-name": "qf"},
{"id": 899076982160041, "name": "Zhangjiagang ATP Challenger", "type": "COMPETITION", "url-name": "zhangjiagang-atp-challenger"}
]

我正在尝试做的是提取第 6 个字典中"name"的值,

for i in meta_list:
event_name = i['name'][6]
print(event_name)

我收到列表索引超出范围错误。 你如何提取名称 "名称": "张家港ATP挑战赛", 从meta_list?

你可以做python索引:

meta_list[5]['name']

另请注意,python索引从零开始

解释:

  1. 获取meta_list的第六个(第五个(元素

  2. 获取'name'密钥

  3. 是的,你完成了

您的代码不起作用,因为您的迭代通过meta_list然后获取i字典的'name'键的第 6 个字符

最后输出为:

Zhangjiagang ATP Challenger

让我们一步一步地解释你:

  • 你应该首先得到列表的第 6 个元素meta_listmeta_list[5](因为第 6 个元素的索引为 5,在 Python 中索引从 0 开始(: 你得到一个字典
  • 然后,您应该通过meta_list[5]['name']获取与此字典中的键'name'关联的值
  • 大功告成!

解决方案是:

print(meta_list[5]['name'])   # Zhangjiagang ATP Challenger

关于不起作用的原始代码,语句for i in meta_list遍历meta_list的每个元素,因此遍历每个字典。当您执行event_name = i['name'][6]时,您尝试获取与name键关联的值的第 7 个字符,这会引起错误,因为"网球"(在第一个字典中(短于 7 个字符。错误IndexError: string index out of range很清楚。

">

i"指的是字典中的每个项目。要访问键"name"的值,请使用 i["name"]:

for i in meta_list:
event_name = i['name']
print(event_name)

最新更新