【问题标题】:Accessing a list inside a dictionary访问字典中的列表
【发布时间】:2020-11-06 08:56:44
【问题描述】:
{'message': 'success', 
  'people': [
        {'name': 'Sergey Ryzhikov', 'craft': 'ISS'},
        {'name': 'Kate Rubins', 'craft': 'ISS'},
        {'name': 'Sergey Kud-Sverchkov', 'craft': 'ISS'}

   ], 
   'number': 3}

我想访问此字典中人员列表中的名称。 请帮我解决一下这个。 谢谢

【问题讨论】:

  • 我认为如果您阅读文档或一些可以详细教您如何执行此操作的帖子会更好。
  • 尝试d["people"][k]["name"] 获取特定名称,或[p["name"] for p in d["people"]] 获取所有名称。

标签: python list api loops dictionary


【解决方案1】:

遍历人员列表并选择要获取的 dict 属性

data = {'message': 'success',
        'people': [{'name': 'Sergey Ryzhikov', 'craft': 'ISS'}, {'name': 'Kate Rubins', 'craft': 'ISS'},
                   {'name': 'Sergey Kud-Sverchkov', 'craft': 'ISS'}], 'number': 3}

for p in data['people']:
    print(p['name'])

输出

Sergey Ryzhikov
Kate Rubins
Sergey Kud-Sverchkov

【讨论】:

  • 投反对票有什么理由吗?
【解决方案2】:

你必须给这本字典起一个名字,像这样

dict1 = {'message': 'success', 
  'people': [
        {'name': 'Sergey Ryzhikov', 'craft': 'ISS'},
        {'name': 'Kate Rubins', 'craft': 'ISS'},
        {'name': 'Sergey Kud-Sverchkov', 'craft': 'ISS'}

   ], 
   'number': 3}
# And then this will access it, by looping over the list and printing out all of the 3 names
for i in dict['people']:
    print(i['name'])

【讨论】:

    【解决方案3】:

    这是一段非常简单的代码。

    d = {'message': 'success', 'people': [{'name': 'Sergey Ryzhikov', 'craft': 'ISS'}, {'name': 'Kate Rubins', 'craft': 'ISS'}, {'name': 'Sergey Kud-Sverchkov', 'craft': 'ISS'}], 'number': 3}
    
    
    for data in d.get("people"):
        print(data.get("name"))
    

    我会建议您使用.get() 方法而不是方括号来访问字典中的值以避免异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多