Словари не могут быть упорядочены на месте, поскольку в них нет порядка, но, начиная с Python 3.7, они запоминают порядок вставки, поэтому мы можем построить «упорядоченный» словарь, отсортировав пары ключ-значение из вашего неупорядоченного словаря.
Таким образом, наиболее важной частью является key
, который мы передаем в качестве аргумента sorted
. В следующем коде ключ представляет собой лямбда-функцию, которая берет каждый ключ, разделяет его на /
и меняет полученный кортеж, так что ключи сортируются сначала по году, а затем по кварталу:
d = {"data": {
"Q3/2016": 86,
"Q1/2016": 85,
"Q4/2016": 69,
"Q2/2016": 69,
"Q2/2017": 82,
"Q1/2017": 66,
}
}
d['data'] = {k: v for k, v in sorted(d['data'].items(), key=lambda x: x[0].split('/')[::-1])}
print(d)
вывод:
{'data': {
'Q1/2016': 85,
'Q2/2016': 69,
'Q3/2016': 86,
'Q4/2016': 69,
'Q1/2017': 66,
'Q2/2017': 82}
}