小编use*_*027的帖子

如何通过密钥对复杂字典进行排序,该密钥位于字典深处?

我有一个这种结构的字典:

{
  "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)

python sorting dictionary list

1
推荐指数
1
解决办法
74
查看次数

标签 统计

dictionary ×1

list ×1

python ×1

sorting ×1