"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso manter a ordem das chaves em objetos JSON usando bibliotecas Python?

Como posso manter a ordem das chaves em objetos JSON usando bibliotecas Python?

Publicado em 2024-11-08
Navegar:640

How Can I Maintain the Order of Keys in JSON Objects Using Python Libraries?

Preservando a ordem das propriedades do objeto JSON usando bibliotecas Python

Ao usar json.dumps para converter um objeto Python em uma string JSON, o a ordem das chaves no objeto JSON de saída pode ser inconsistente com a ordem original das chaves no objeto Python de entrada. Isso pode ser problemático se uma ordem de chave específica for necessária.

Para resolver esse problema, você pode aproveitar certas bibliotecas Python que fornecem recursos para manter a ordem de chave em objetos JSON.

Usando o parâmetro sort_keys

Uma solução simples é usar o parâmetro sort_keys em conjunto com json.dumps. Ao definir sort_keys como True, as chaves no objeto JSON de saída serão classificadas em ordem alfabética crescente.

import json

json_string = json.dumps({'a': 1, 'b': 2}, sort_keys=True)
print(json_string)  # Output: '{"a": 1, "b": 2}'

Usando as coleções.OrderedDict

Para um controle mais preciso sobre o ordem de chave, você pode usar a classe Collections.OrderedDict. OrderedDict preserva a ordem de inserção dos pares de valores-chave, garantindo que a ordem das chaves no objeto JSON resultante seja a mesma ordem em que os pares de valores-chave foram adicionados ao OrderedDict.

from collections import OrderedDict

json_string = json.dumps(OrderedDict([('a', 1), ('b', 2)]))
print(json_string)  # Output: '{"a": 1, "b": 2}'

Preservando a ordem das chaves no JSON de entrada

Se a entrada for no formato JSON, você pode usar o parâmetro object_pairs_hook em json.loads para especificar uma função que será chamada para cada par de valores-chave no objeto JSON. Isso permite que você crie um OrderedDict para preservar a ordem das chaves.

import json

json_string = '{"a": 1, "b": 2}'
parsed_json = json.loads(json_string, object_pairs_hook=OrderedDict)
print(parsed_json)  # Output: OrderedDict([('a', 1), ('b', 2)])

Ao utilizar essas técnicas, você pode garantir que a ordem das propriedades em objetos JSON seja consistente com a ordem desejada, proporcionando maior flexibilidade e controle sobre objetos JSON em Python.

Tutorial mais recente Mais>

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