Maison > développement back-end > Tutoriel Python > JSON peut-il être chargé dans un OrderedDict pour préserver l'ordre des clés ?

JSON peut-il être chargé dans un OrderedDict pour préserver l'ordre des clés ?

Mary-Kate Olsen
Libérer: 2024-12-06 22:19:12
original
799 Les gens l'ont consulté

Can JSON be Loaded into an OrderedDict to Preserve Key Order?

Chargement de JSON dans un OrderedDict

Dans JSON, les données sont stockées dans des paires clé-valeur. L'ordre de ces paires n'est pas garanti. Cependant, dans certains scénarios, le maintien de l’ordre des clés est crucial. La question se pose : peut-on charger JSON dans un dictionnaire ordonné (OrderedDict) ?

Solution avec object_pairs_hook

Oui, JSON peut être chargé dans un OrderedDict. Ceci est réalisé en spécifiant l'argument object_pairs_hook au constructeur JSONDecoder. L'argument object_pairs_hook prend une fonction appelée pour chaque paire de clés et de valeurs dans l'objet JSON. Cette fonction peut renvoyer un dictionnaire ordonné, garantissant que l'ordre des clés est préservé. Vous trouverez ci-dessous un exemple :

import json
from collections import OrderedDict

data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
print(json.dumps(data, indent=4))
Copier après la connexion

Sortie :

{
    "foo": 1,
    "bar": 2
}
Copier après la connexion

Cela fonctionne car la fonction object_pairs_hook renvoie un objet OrderedDict, qui maintient l'ordre des clés.

Alternative utilisant json.load

La même approche peut être appliquée au Fonction json.load :

data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
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