Maison > développement back-end > Tutoriel Python > Comment pouvez-vous contrôler l'ordre des clés dans les objets JSON lors de la conversion de dictionnaires Python à l'aide de « json.dumps » ?

Comment pouvez-vous contrôler l'ordre des clés dans les objets JSON lors de la conversion de dictionnaires Python à l'aide de « json.dumps » ?

Barbara Streisand
Libérer: 2024-10-29 21:17:30
original
1030 Les gens l'ont consulté

How can you control the order of keys in JSON objects when converting Python dictionaries using `json.dumps`?

Réorganisation des éléments dans les objets JSON à l'aide de "json.dumps"

Le problème des clés non ordonnées dans les objets JSON se pose lors de l'utilisation de la fonction "json.dumps" pour convertir Python dictionnaires au format JSON, conduisant à des classements inattendus. Cela se produit parce que les dictionnaires Python et les objets JSON manquent d'ordre inhérent.

Pour résoudre ce problème, le paramètre "sort_keys" peut être utilisé dans "json.dumps" pour trier les clés par ordre alphabétique croissant. Voici un exemple :

<code class="python">import json

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

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

Cela produit le résultat souhaité avec des clés triées :

<code class="json">[
  {"id": 1, "name": "Mauritius", "timezone": 4},
  {"id": 2, "name": "France", "timezone": 2},
  {"id": 3, "name": "England", "timezone": 1},
  {"id": 4, "name": "USA", "timezone": -4}
]</code>
Copier après la connexion

Une autre option consiste à utiliser la classe "collections.OrderedDict", qui conserve l'ordre des clés. paires de valeurs. Voici un exemple :

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

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

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

Cela entraîne également une sortie JSON ordonnée :

<code class="json">{"id": 1, "name": "Mauritius", "timezone": 4}</code>
Copier après la connexion

Depuis Python 3.6, l'ordre des arguments des mots-clés est conservé par défaut, offrant ainsi un moyen plus simple de obtenir l'ordre souhaité :

<code class="python">countries = {
    "id": 1,
    "name": "Mauritius",
    "timezone": 4
}

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

Enfin, si votre entrée est fournie au format JSON, l'argument "object_pairs_hook" peut être utilisé dans "json.loads" pour conserver l'ordre en tant que "OrderedDict" :

<code class="python">json_input = '{"a": 1, "b": 2}'

ordered_dict = json.loads(json_input, object_pairs_hook=OrderedDict)
print(ordered_dict)</code>
Copier après la connexion

Cela garantit que les paires clé-valeur restent dans l'ordre d'origine dans lequel elles ont été fournies dans l'entrée JSON.

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