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
Mary-Kate Olsenoriginal
2024-12-06 22:19:12857parcourir

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))

Sortie :

{
    "foo": 1,
    "bar": 2
}

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)

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!

Déclaration:
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