"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment contrôler l'ordre des clés JSON avec « json.dumps » de Python ?

Comment contrôler l'ordre des clés JSON avec « json.dumps » de Python ?

Publié le 2024-11-08
Parcourir:132

 How to Control JSON Key Order with Python\'s `json.dumps`?

Incohérences dans l'ordre des clés JSON lors de l'utilisation de "json.dumps"

En Python, la conversion JSON implique souvent l'utilisation de "json.dumps" pour transformer dictionnaires en objets JSON. Cependant, les utilisateurs peuvent rencontrer des incohérences dans l'ordre des clés JSON résultant, la séquence attendue (identifiant, nom, fuseau horaire) différant de la sortie réelle (fuseau horaire, identifiant, nom).

Pour résoudre ce problème et appliquer le Dans l'ordre des clés souhaité, deux approches sont disponibles :

1. Utilisation du paramètre "sort_keys" :

Le paramètre "sort_keys", lorsqu'il est défini sur True, trie les clés JSON par ordre alphabétique. Par exemple, l'extrait de code suivant donnerait l'ordre des clés souhaité :

import json

countries = []
countries.append({"id": 1, "name": "Mauritius", "timezone": 4})
countries.append({"id": 2, "name": "France", "timezone": 2})
countries.append({"id": 3, "name": "England", "timezone": 1})
countries.append({"id": 4, "name": "USA", "timezone": -4})

json_data = json.dumps(countries, sort_keys=True)
print(json_data)

2. En utilisant OrderedDict : 

"collections.OrderedDict" de Python conserve l'ordre d'insertion des clés. En utilisant OrderedDict, l'ordre des clés attendu peut être obtenu :

from collections import OrderedDict

countries = OrderedDict()
countries["id"] = 1
countries["name"] = "Mauritius"
countries["timezone"] = 4

json_data = json.dumps(countries)
print(json_data)

Dans Python 3.6 et supérieur, l'ordre des arguments des mots clés est conservé par défaut, permettant une syntaxe plus concise :

json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)

Enfin, pour l'entrée JSON, le paramètre "object_pair_hook" peut être utilisé pour préserver l'ordre des objets et générer un OrderedDict :

import json

json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3