我有一个这种结构的字典:
{
"Mark":
{
"surname":"Johnson",
"tags":
[
{
"name":"Salary",
"value":"5"
},
{
"name":"Car manufacturer",
"value":"Volvo"
}
]
},
"John":
{
"surname":"Doe",
"tags":
[
{
"name":"Salary",
"value":"10"
},
{
"name":"Car manufacturer",
"value":"Daewoo"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想通过名称为'汽车制造商'的标签值对该字典进行排序,以得到这样的结果:
{
"Volvo":
{
[
"Mark":{...},...
]
},
"Daewoo":
{
["John":{...}]
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让它尽可能优雅?我可以通过制作几个嵌套循环(下面的例子)来做到这一点,但它看起来很难看,可能效率不高.
cars = {}
for person in persons:
for tag in person['tags']:
if tag['name'] == 'Car manufacturer'
cars[tag['value']].append(item)
Run Code Online (Sandbox Code Playgroud)