Python 将目录列表转换为单个词典

Python 将目录列表转换为单个词典,python,list,dictionary,Python,List,Dictionary,对于以下内容,如何根据“名称”验证获取“a_id”值及其“b_id”值 [ { "name": "name1", "a_id": "12345", "b_id": "0d687c94c5f4" }, { "name": "name2", "a_id": "67890", "b_id": "0d687c94c5f4" }, { "name": "name3", "a_id": "23857", "b_id": "9ec34be

对于以下内容,如何根据“名称”验证获取“a_id”值及其“b_id”值

[
{
    "name": "name1",
    "a_id": "12345",
    "b_id": "0d687c94c5f4"
},
{
    "name": "name2",
    "a_id": "67890",
    "b_id": "0d687c94c5f4"
},
{
    "name": "name3",
    "a_id": "23857",
    "b_id": "9ec34be3d535"
},
{
    "name": "name4",
    "a_id": "84596",
    "b_id": "9ec34be3d535"
},
{
    "name": "name5",
    "a_id": "d82ebe9815cc",
    "b_id": null
}
]

我使用了两个值,例如

{result['a_id']: result['name'] for result in data}
但对于第三个值,如果我这样使用它,它不会让我这样做

{result['a_id']: result['name'], result['b_id']: result['name'] for result in data}
正确的语法是什么。

我认为使用嵌套循环的dict理解应该可以做到:

data = {result[k] : result['name'] for result in data for k in ('a_id', 'b_id')}
您可以添加任意数量的键。如果更有意义,可以在变量
keys
中在外部声明密钥:

keys = ('a_id', 'b_id', ...)
data = {result[k] : result['name'] for result in data for k in keys}

你能举例说明你希望你的输出是什么样子的吗?谢谢你的帮助。COLDSPEED发布的内容就是我正在寻找的内容。回复框出现问题,无法快速发布,但我得到了答案。谢谢您的回复。你真的回答了我的问题。我有一个关于我得到的结果的问题。当我使用{result['b_id']:result['name']作为result in data}时,我只得到3个值,而不是5个值。0d687c94c5f4、9ec34be3d535和null。如果您注意到有重复的“b_id”。但我需要这些,而不是过滤。抱歉,我不确定是否可以进一步询问其他问题,或者我必须发布一个新问题。@实际上,您要求的是具有重复键的词典。不幸的是,这是不可能做到的。如果你还有其他问题,我希望你先回答,然后再打开另一个问题。但如果你的问题涉及到重复的钥匙,我很抱歉,这是不可能的。