0
respostas

ordenar lista de dicionários

Tô tentando ordenar uma lista de dicionarios por um valor str data que consiste em mm-aaaa. Do jeito que tá, a lista é ordenada pelo mês, mas eu queria ordenar primeiro pelo ano, e depois pelo mês. Tem como? Segue o código:

from operator import itemgetter

registro = [{
        "mes_ano_referencia" : "01-2022",
        "total_habitantes" : 1000000,
        "Total_obitos": 500000
    },
    {
        "mes_ano_referencia": "12-2021",
        "total_habitantes": 1500000,
        "Total_obitos": 600000
    },
    {
        "mes_ano_referencia": "10-2019",
        "total_habitantes": 1400000,
        "Total_obitos": 400000
    },
    {
        "mes_ano_referencia": "11-2022",
        "total_habitantes": 400000,
        "Total_obitos": 100000
    },
    {
        "mes_ano_referencia": "02-2021",
        "total_habitantes": 2500000,
        "Total_obitos": 6400000
    },
    {
        "mes_ano_referencia": "05-2022",
        "total_habitantes": 4500000,
        "Total_obitos": 100000
    }
]


def listarTudo(listaRegistro):

    listaOrdenada = sorted(listaRegistro, key=itemgetter('mes_ano_referencia'))

    for item in listaOrdenada:
        print("\nMês-ano referência...........:", item["mes_ano_referencia"])
        print("Total Habitantes.............:", item["total_habitantes"])
        print("Total óbitos.................:", item["Total_obitos"])