Aller au contenu
Cheat Sheet
Python

[Python] Benedict : une autre façon de jouer avec…

  • 25 mai 202225 mai 2022

Je suis souvent confronté au problème suivant : je récupère un json (API), je le transforme en dict et je veux faire des opérations dessus, mais je ne suis pas certain que tous les éléments sont présents.

Pour accéder à un élément, je dois soit faire :

if 'niveau_1' in elem and 'niveau_2' in elem['niveau_1'] and 'niveau_3' in elem['niveau_1']['niveau_2']: 
    ...

Ou alors faire un try / except KeyError, mais je trouve ça très moche.

Une autre solution consiste à utiliser la librairie python-benedict. Cette librairie surcharge le dict et propose des fonctionnalités avancées sur leur manipulation. Comme par exemple le fait de pouvoir accéder aux éléments avec un équivalent de xpath.

Par exemple :

if 'niveau_1.niveau_2.niveau_3' in elem:
    ...

En plus, ça charge directement de json, des yaml, etc.

[Python] Exécuter un programme externe et interagir avec lui
Créer un CBZ avec 7zip
dict json library python

Articles similaires

[Python] Protocol
[Python] Liste de choix en…
[Python] Exécuter un programme externe…
Un package Python nécessite Visual…
Publier un site Flask sur…
[Python] Combien de temps met…
[Python / Selenium] Regarder les…
[Python] Petites fonctions qui vont…
[Notepad++] Enchaîner les “rechercher /…
[Python] Transformer un tableau de…

Catégories

  • Android
  • Calibre
  • Excel
  • Git
  • Google Sheet
  • Knime
  • Linux
  • Logiciels
  • Matériel
  • Non classé
  • Notepad++
  • Power BI
  • Programmation
  • Python
  • Qlik
  • Synology
  • Visual Studio Code
  • Windows
  • Word
  • WordPress

Étiquettes

android apache apn artefact bloc connexion convert encode excel ffmpeg firefox flask hash kobo linux markdown max md5 min mod_wsgi mp3 notepad++ office partage php pip python qlik qliksense qlikview reduce selenium sha1 styles sum synology temps venv virtualenv visual basic wav windows word wordpress xhr

Tags

android apache apn artefact bloc connexion convert encode excel ffmpeg firefox flask hash kobo linux markdown max md5 min mod_wsgi mp3 notepad++ office partage php pip python qlik qliksense qlikview reduce selenium sha1 styles sum synology temps venv virtualenv visual basic wav windows word wordpress xhr
Thème par Colorlib Propulsé par WordPress