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

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

Linda Hamilton
Libérer: 2024-12-02 13:45:12
original
730 Les gens l'ont consulté

Can JSON be Loaded into a Python OrderedDict to Preserve Key Order?

Chargement de JSON dans un OrderedDict

En Python, un OrderedDict conserve l'ordre de ses clés, contrairement à un dictionnaire classique. Bien qu'il soit possible de vider un OrderedDict dans JSON à l'aide de json.dump, pouvons-nous également charger à nouveau JSON dans un OrderedDict pour conserver l'ordre des clés d'origine ?

Chargement de JSON dans un OrderedDict

Pour charger JSON dans un OrderedDict, utilisez l'argument object_pairs_hook dans la classe JSONDecoder ou dans json.loads et json.load. Cet argument spécifie une fonction qui sera appelée sur chaque paire de clés et de valeurs dans l'objet JSON lors de leur chargement.

Par exemple, pour charger JSON dans un OrderedDict à l'aide de la classe JSONDecoder :

import json
from collections import OrderedDict

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

Vous pouvez également passer l'argument object_pairs_hook directement à json.loads :

import json
from collections import OrderedDict

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

Ou lors de l'ouverture un fichier JSON :

import json
from collections import OrderedDict

with open('config.json') as f:
    data = json.load(f, object_pairs_hook=OrderedDict)
Copier après la connexion

Cela chargera les données JSON dans un OrderedDict tout en conservant l'ordre d'origine des clés.

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