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!