从嵌套字典中删除顶层键并保留值,是否可能?

4

包含需要删除键的嵌套字典示例。

{1: {'Email': 'JohnDoe@email.com',
     'FirstName': 'John',
     'Id': {'Value': 1},
     'LastName': 'Doe',
     'UserName': 'JohnDoe'},
 2: {'Email': 'JaneDoe@email.com',
     'FirstName': 'Jane',
     'Id': {'Value': 2},
     'LastName': 'Doe',
     'UserName': 'JaneDoe'},
 3: {'Email': 'FredDoe@email.com',
     'FirstName': 'Fred',
     'Id': {'Value': 1},
     'LastName': 'Doe',
     'UserName': 'FredDoe'}}

是否可以删除数字键并保存如下所示的字典?

   {{'Email': 'JohnDoe@email.com',
     'FirstName': 'John',
     'Id': {'Value': 1},
     'LastName': 'Doe',
     'UserName': 'JohnDoe'},
    {'Email': 'JaneDoe@email.com',
     'FirstName': 'Jane',
     'Id': {'Value': 2},
     'LastName': 'Doe',
     'UserName': 'JaneDoe'},
    {'Email': 'FredDoe@email.com',
     'FirstName': 'Fred',
     'Id': {'Value': 1},
     'LastName': 'Doe',
     'UserName': 'FredDoe'}}

1
在你期望的输出中,外部容器不应该是一个列表吗?像{{1: 'a'}, {2: 'b'}, {3: 'b'}}这样的写法是不可能的,因为字典是不可哈希的。 - Sean Breckenridge
谢谢Sean。所以听起来我需要将字典转换为列表才能得到期望的输出?我正在尝试构建一个带有预期输出的JSON文件,原始字典是从REST API获取的,因此正在寻找一种方法来删除数字键。 - Rick C
2个回答

3
假设字典保存在变量d中,您只需使用d.values(),即可获得字典中每个键-值对的值:
>>> d = {1: {'Email': 'JohnDoe@email.com', 'FirstName': 'John', 'Id': {'Value': 1}, 'LastName': 'Doe', 'UserName': 'JohnDoe'}, 2: {'Email': 'JaneDoe@email.com', 'FirstName': 'Jane', 'Id': {'Value': 2}, 'LastName': 'Doe', 'UserName': 'JaneDoe'}, 3: {'Email': 'FredDoe@email.com', 'FirstName': 'Fred', 'Id': {'Value': 1}, 'LastName': 'Doe', 'UserName': 'FredDoe'}}
>>> l = list(d.values())
>>> l
[{'Email': 'JohnDoe@email.com', 'FirstName': 'John', 'Id': {'Value': 1}, 'LastName': 'Doe', 'UserName': 'JohnDoe'}, {'Email': 'JaneDoe@email.com', 'FirstName': 'Jane', 'Id': {'Value': 2}, 'LastName': 'Doe', 'UserName': 'JaneDoe'}, {'Email': 'FredDoe@email.com', 'FirstName': 'Fred', 'Id': {'Value': 1}, 'LastName': 'Doe', 'UserName': 'FredDoe'}]

正是我所需要的。谢谢! - Rick C

1
我认为您想要创建一个仅由键而不是键和值组成的字典。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接