Maison > Article > développement back-end > Comment accéder aux dictionnaires Python imbriqués comme des objets ?
Comment transformer un dictionnaire Python imbriqué en un objet
Pour plus de commodité, il est souhaitable d'accéder aux données en utilisant l'accès aux attributs sur les dictionnaires contenant des dictionnaires et listes, semblables à la syntaxe d'objet de JavaScript. Par exemple :
d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
Ces données doivent être accessibles comme suit :
x = dict2obj(d) x.a 1 x.b.c 2 x.d[1].foo bar
La création d'une telle fonction nécessite une récursion. Voici une approche pour obtenir une fonctionnalité de type objet pour les dictionnaires :
class Struct: def __init__(self, **entries): self.__dict__.update(entries)
Utilisation :
args = {'a': 1, 'b': 2} s = Struct(**args) s.a 1 s.b 2
Solution alternative : Namedtuples
Pour Python versions 2.6 et ultérieures, pensez à utiliser les données namedtuple structure :
from collections import namedtuple MyStruct = namedtuple('MyStruct', 'a b d') s = MyStruct(a=1, b={'c': 2}, d=['hi'])
Vous disposez désormais d'un tuple nommé qui se comporte comme un objet, avec un accès aux attributs pour ses champs. Cela fournit une solution concise et très lisible.
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!