Maison > développement back-end > Tutoriel Python > 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 ?

Linda Hamilton
Libérer: 2024-10-27 05:17:03
original
379 Les gens l'ont consulté

 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 ordre de clé 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 de clé souhaité :

<code class="python">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)</code>
Copier après la connexion

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 :

<code class="python">from collections import OrderedDict

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

json_data = json.dumps(countries)
print(json_data)</code>
Copier après la connexion

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

<code class="python">json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)</code>
Copier après la connexion

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 :

<code class="python">import json

json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal