itens fora da ordem nos objetos json com "json.dumps"?
em seu código, você está usando "json .Dumps "para converter uma lista de dicionários em json. No entanto, você notou que a ordem das chaves dentro de cada dicionário não é o esperado. Especificamente, você precisa que as chaves apareçam na ordem de "id", "nome" e "fuso horário". 3.7) e objetos JSON são coleções não ordenadas. Isso significa que a ordem das chaves em um objeto dicionário ou json não é garantida. "json.dumps" para classificar as chaves no json de saída. Por exemplo:
import json países.Append ({"id": row.id, "nome": row.name, "Timebone": Row.TimeZone}) print (json.dumps (países, sort_keys = true))
Isso produzirá JSON com as chaves na seguinte ordem:[ {"Id": 1, "Nome": "Mauritius", "Filho horário": 4}, {"Id": 2, "Nome": "França", "Filho time": 2}, {"ID": 3, "Nome": "Inglaterra", "Filho horário": 1}, {"id": 4, "Nome": "USA", "Timebone": -4} ] Solução 2: Usando OrderedDict
Se precisar de um pedido específico para as chaves, poderá usar a classe "CONSULTADAS.OrmoraDdict". OrdedDict preserva a ordem das chaves inseridas nela. Por exemplo:
de coleções importando ordereddict países_by_id = ordereddict () países_by_id ["id"] = row.id países_by_id ["nome"] = row.name países_by_id ["Timebone"] = row.TimeZone print (json.dumps (países_by_id))
import json
countries.append({"id":row.id,"name":row.name,"timezone":row.timezone})
print(json.dumps(countries, sort_keys=True))
nota adicional
[ {"id": 1, "name": "Mauritius", "timezone": 4}, {"id": 2, "name": "France", "timezone": 2}, {"id": 3, "name": "England", "timezone": 1}, {"id": 4, "name": "USA", "timezone": -4} ]
No Python 3.6 e, posterior, a ordem dos argumentos das palavras -chave é preservada nos dicionários. Isso significa que você pode alcançar o mesmo resultado que o uso do OrdeDDict simplesmente especificando as chaves na ordem desejada ao criar o dicionário:
países = {"id": row.id, "nome": row.name, "TimeZone": Row.TimeZone}Isso preservará automaticamente a ordem das chaves na saída JSON.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3