【问题标题】:iterate through list and return value from nested dict by position遍历列表并按位置从嵌套字典返回值
【发布时间】:2019-02-12 13:57:45
【问题描述】:

假设我有一个字典列表

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 个字典中提取“名称”的值,

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

我收到列表索引超出范围错误。 怎么提取名字 “名称”:“张家港ATP挑战者”, 来自 meta_list?

【问题讨论】:

  • meta_list[6]['name'] ?

标签: python json list dictionary


【解决方案1】:

你可以做python索引:

meta_list[5]['name']

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

说明:

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

  2. 获取'name' 密钥

  3. 是的,你已经完成了

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

最后的输出是:

Zhangjiagang ATP Challenger

【讨论】:

    【解决方案2】:

    让我们一步一步解释:

    • 你应该首先得到列表meta_listmeta_list[5]的第6个元素(因为第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 很清楚。

    【讨论】:

      【解决方案3】:

      'i' 指字典中的每个项目。为了访问键 'name' 的值,使用 i['name']:

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

      【讨论】:

        猜你喜欢
        • 2021-10-21
        • 2015-12-06
        • 1970-01-01
        • 1970-01-01
        • 2020-11-13
        • 2012-07-09
        • 2021-03-19
        • 1970-01-01
        • 2017-07-25
        相关资源
        最近更新 更多