Maison > développement back-end > Tutoriel Python > Les données JSON peuvent-elles être chargées dans un OrderedDict, en conservant l'ordre des clés ?

Les données JSON peuvent-elles être chargées dans un OrderedDict, en conservant l'ordre des clés ?

Barbara Streisand
Libérer: 2024-12-06 01:48:10
original
232 Les gens l'ont consulté

Can JSON Data Be Loaded into an OrderedDict, Maintaining Key Order?

Chargement JSON dans un OrderedDict

Question :

Est-il possible de charger des données JSON dans un OrderedDict, en préservant le commande originale de clés ?

Réponse :

Oui, il est possible de charger du JSON dans un OrderedDict en utilisant l'argument object_pairs_hook de la classe JSONDecoder. Cet argument spécifie la fonction à appeler pour construire l'objet à partir des données JSON décodées.

En passant collections.OrderedDict comme argument object_pairs_hook, vous pouvez vous assurer que l'objet résultant est un OrderedDict, en préservant l'ordre des clés dans les données JSON.

Voici comment utiliser cet argument avec json.JSONDecoder :

decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict)
data = decoder.decode('{"foo":1, "bar": 2}')
print(data)
Copier après la connexion

Cela affichera un OrderedDict avec les clés dans le même ordre que celui dans lequel elles apparaissent dans les données JSON :

OrderedDict([('foo', 1), ('bar', 2)])
Copier après la connexion

Vous pouvez également utiliser cet argument avec json .loads pour obtenir le même résultat :

import json
from collections import OrderedDict

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

Enfin, vous pouvez utiliser cet argument avec json.load pour charger des données à partir d'un déposer dans un OrderedDict :

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!

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