对于以下内容,我如何根据“名称”验证获得“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}
正确的语法是什么。
答案 0 :(得分:2)
我认为使用嵌套循环的 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}