Munch, un dictionnaire qui supporte les accesseurs
Posté le 09/11/2017 dans Python
Munch est une petite librairie bien pratique et bien pensé.
En gros, elle permet d'utiliser les accesseurs pour accéder aux éléments de tes dictionnaires, à la manière d'un objet python.
Ça peut être utile notamment dans les tests unitaires, si tu as besoin de mocker rapidement un objet par exemple.
Tu écris un dictionnaire qui correspond à ton objet, tu le munchify et hop !
Si dans une fonction que tu veux tester, tu as utilisé des accesseurs sur un objet, ton munch sera considéré comme l'objet en question.
C'est à priori un fork de Bunch, mais maintenu et qui fonctionne en python 3.
Tu l'installes avec pip :
pip install munch
Tu importes munchify et tu convertis ton dictionnaire en munch :
>>> from munch import munchify
>>> data = {
"last_name": "Dupont",
"first_name": "Jean",
"age": 30,
"activities": ["football", "ping-pong"],
"job": {
"name": "Developer",
"enterprise": "Mozilla"
}
}
>>> mymunch = munchify(data)
>>> mymunch.last_name
'Dupont'
>>> mymunch.first_name = "Pierre"
>>> mymunch.first_name
'Pierre'
>>> mymunch.activities[0]
'football'
>>> mymunch.job.enterprise
'Mozilla'
Voilà c'est tout !
Tu as accès aux différentes méthodes des dictionnaires, comme keys() et update(), ainsi qu'à l'itération et à l'opérateur splat. Ça supporte également la sérialization en JSON et en YAML.