Maison > développement back-end > Tutoriel Python > Comment puis-je convertir un dictionnaire Python imbriqué en une structure de type objet pour la récupération de données basée sur les attributs ?

Comment puis-je convertir un dictionnaire Python imbriqué en une structure de type objet pour la récupération de données basée sur les attributs ?

DDD
Libérer: 2024-11-11 08:50:02
original
1039 Les gens l'ont consulté

How can I convert a nested Python dictionary into an object-like structure for attribute-based data retrieval?

Conversion de dicts Python imbriqués en objets

Les méthodes d'accès offrent un moyen pratique de récupérer des données à partir de structures de données complexes, permettant une navigation intuitive orientée objet. Cependant, les dictionnaires natifs de Python manquent intrinsèquement de cette fonctionnalité.

Problème : Comment pouvons-nous convertir un dictionnaire Python imbriqué en une structure de type objet, permettant une récupération de données basée sur les attributs ?

Réponse :

Utilisation de tuples nommés (Python 2.6 et versions ultérieures)

Pour les versions plus récentes de Python (2.6 et versions ultérieures), les tuples nommés fournissent un solution élégante. Ceux-ci représentent des types de données personnalisés immuables avec des champs nommés :

from collections import namedtuple

MyStruct = namedtuple('MyStruct', 'a b d')
s = MyStruct(a=1, b={'c': 2}, d=['hi'])

print(s.a, s.b['c'], s.d[0])
# Output: 1 2 hi
Copier après la connexion

Utilisation d'une classe Struct personnalisée

Vous pouvez également créer une classe Struct personnalisée qui imite le comportement de objets :

class Struct:
    def __init__(self, **entries):
        self.__dict__.update(entries)

args = {'a': 1, 'b': 2}
s = Struct(**args)

print(s.a, s.b)
# Output: 1 2
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal