【问题标题】:How to get make a list of key names from a list of dictionaries in Python如何从 Python 中的字典列表中获取键名列表
【发布时间】:2021-11-01 09:24:45
【问题描述】:

我有一个从 .cvs 文件中获取的字典列表,例如:

[{'name': 'Tom', 'Age': '15', 'location': 'USA'}, 
{'name': 'Paul', 'Age': '31', 'location': 'UK'},
{'name': 'Tony', 'Age': '24', 'location': 'France'}
]

现在说我不知道​​不同键的名称是什么,根据我的示例,我将如何创建它们的列表,特别是 ['name', 'age', 'location'] 的列表?谢谢。

【问题讨论】:

  • 您的问题中“键”和“值”之间似乎有些混淆。另外,如果你一开始有一个 CSV,为什么不直接从它那里得到你想要的,而不是通过一个不太方便的格式,比如这个 dict?
  • 可以使用 "list(d.values())" 检索 dict "d" 的值列表。
  • 你说得对,我在这里让自己感到困惑,所以我真正想要的是一个键列表?我想我会这样做,因为我已经从 CVS 文件中获取数据存储在这里,直接从 CVS 文件中获取它们真的更方便吗?
  • 您的 csv 阅读器对象具有 fieldnames 属性。

标签: python python-3.x dictionary


【解决方案1】:
values_of_key = [key for a_dict in list_of_dicts for key in a_dict.keys()]
values_of_key = list(dict.fromkeys(values_of_key))

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

感谢 Thierry Lathuille 的指点,我实际上想出了 2 种不同的方法,我可以在按照 Thierry 的建议打开文件时使用 csv.fieldname 属性,或者我可以使用 file[0]。完成列表中的keys(),因为所有条目的keys都是相同的。

【讨论】:

    猜你喜欢
    • 2020-03-26
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多