如何迭代python DICT以提取特定键的特定值?
我有下面显示的dict,它是根据GET请求创建的。我想反复阅读这篇文章,只提取所有用户的电子邮件。我不想要带值的密钥,只需要一个新的电子邮件地址列表。我怎样才能最有效地循环一个长的dict,并只提取关键“email”的值?我尝试过使用json.load函数,但在数据类型上遇到了问题如何迭代python DICT以提取特定键的特定值?,python,Python,我有下面显示的dict,它是根据GET请求创建的。我想反复阅读这篇文章,只提取所有用户的电子邮件。我不想要带值的密钥,只需要一个新的电子邮件地址列表。我怎样才能最有效地循环一个长的dict,并只提取关键“email”的值?我尝试过使用json.load函数,但在数据类型上遇到了问题 { "users": [ { "id": 1262635064750, "url":
{
"users": [
{
"id": 1262635064750,
"url": "https://xxxx.xxx.com/api/v2/users/1262635064xxx.json",
"name": "Customer A",
"email": "customerA@example.com",
"created_at": "2021-03-05T22:05:12Z",
"updated_at": "2021-03-05T22:05:15Z",
"time_zone": "America/Chicago",
"iana_time_zone": "America/Chicago",
"phone": null,
"shared_phone_number": null
}
{
"id": 1262635064751,
"url": "https://xxxx.xxx.com/api/v2/users/1262635064xxx.json",
"name": "Customer B",
"email": "customerB@example.com",
"created_at": "2021-03-05T22:05:12Z",
"updated_at": "2021-03-05T22:05:15Z",
"time_zone": "America/Chicago",
"iana_time_zone": "America/Chicago",
"phone": null,
"shared_phone_number": null
}
{
"id": 1262635064752A,
"url": "https://xxxx.xxx.com/api/v2/users/1262635064xxx.json",
"name": "Customer C",
"email": "customerC@example.com",
"created_at": "2021-03-05T22:05:12Z",
"updated_at": "2021-03-05T22:05:15Z",
"time_zone": "America/Chicago",
"iana_time_zone": "America/Chicago",
"phone": null,
"shared_phone_number": null
}
使用:
这假定顶级字典存储为名为response的变量。然后response[users]是一个字典列表。此列表将在此列表上循环,将每个用户字典分配给用户并访问其电子邮件键值。如果您有字典,则不需要或不应该使用json.loads。但是,您显示的既不是Python字典,Stack Overflow并不打算取代现有的文档和教程。在有关基本数据结构的任何教程中,都会很好地介绍如何迭代基本数据结构。我们希望您做出诚实的尝试,然后就您的算法或技术提出一个具体的问题。当然,“dict”充满了语法错误,正如上面@mkreiger1所说:“null”应该是“None”,在id vals周围加引号,逗号分隔内部dict,右方括号和方括号。因此,如果这就是您从request.args.get中得到的结果,那么您需要修复客户端代码,并对路由处理进行一些清理。
emails = [user["email"] for user in response["users"]]