当一个值有3层深时,如何按值对字典排序?

2024-06-02 04:36:13 发布

您现在位置:Python中文网/ 问答频道 /正文

假设下面的字典是前面代码的输出:

{  
   '1':{  
      'json':{  
         'stuff2':[  
            '123',
            '234',
            '345'
         ],
         'region':'APAC'
      },
      'stuff':{  
         'search1':'1231245132512',
         'search2':'235346262346'
      }
   },
   '2':{  
      'json':{  
         'stuff2':[  
            '123',
            '234',
            '345'
         ],
         'region':'EMEA'
      },
      'stuff':{  
         'search1':'1231245132512',
         'search2':'235346262346'
      }
   },
   '3':{  
      'json':{  
         'stuff2':[  
            '123',
            '234',
            '345'
         ],
         'region':'AMER'
      },
      'stuff':{  
         'search1':'1231245132512',
         'search2':'235346262346'
      }
   }
}

我的代码当前将一个生成器赋给一个变量,然后在for循环中使用该生成器:

runs = (unimportantFunc(x,y,z) for x,y in dict.items())

for i in runs:...

我需要能够从dict[x]]['json']['region']中按区域对for循环进行排序,但是除了在字典上运行一整秒钟的for循环,将它们设置到自己的嵌套列表中,然后执行双for循环之外,我想不出任何方法对它们进行排序。我读了一些关于如何按值排序的文档,但是当值嵌套3深时,我不知道该怎么做

我想运行命令运行dict[x]]['json']['region'] = APAC第一,欧洲、中东和非洲第二和美国第三

我们使用的是Python2.7,所以我不能使用Python3中存在的任何东西


Tags: 代码injsonfor字典排序runsregion
1条回答
网友
1楼 · 发布于 2024-06-02 04:36:13

这样的方法应该有用:

sorted(dict.keys(), key=lambda k: dict[k]['json']['region'])

这将返回按区域排序的密钥列表:

['3', '1', '2']

相关问题 更多 >