Как отсортировать словарь по значению, если значение имеет глубину 3 уровня? - PullRequest
0 голосов
/ 05 марта 2019

Допустим, следующий словарь является выводом предыдущего кода:

{  
   '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, я не могу придумать, как их упорядочить.Я читал некоторую документацию о том, как сортировать по значениям, но я не могу понять, как это сделать, когда значение вложено в 3 глубины.

Я хочу, чтобы цикл был запущен сначала dict[x]]['json']['region'] = APAC, второй EMEA и третий AMER.

Мы используем Python 2.7, поэтому я не смогу использовать ничего, чтосуществует в Python 3.

1 Ответ

0 голосов
/ 05 марта 2019

Примерно так должно работать:

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

Это вернет список ваших ключей, отсортированных по регионам:

['3', '1', '2']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...