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
  • Docker
  • Excel
  • Git
  • Google Sheet
  • Knime
  • Linux
  • Logiciels
  • Matériel
  • Non classé
  • Notepad++
  • Power BI
  • Programmation
  • Python
  • Qlik
  • Service
  • Synology
  • Visual Studio Code
  • Windows
  • Word
  • WordPress

Étiquettes

android apache bootloader convert drivers encode excel fastboot ffmpeg filter firefox generators gps kobo lambda linux manette markdown min mod_wsgi moto g LTE motorola mp3 notepad++ peregrine php pip python qlik qliksense qlikview reduce selenium sum synology twrp venv virtualenv visual basic vitesse wav waze windows wordpress youtube

Tags

android apache bootloader convert drivers encode excel fastboot ffmpeg filter firefox generators gps kobo lambda linux manette markdown min mod_wsgi moto g LTE motorola mp3 notepad++ peregrine php pip python qlik qliksense qlikview reduce selenium sum synology twrp venv virtualenv visual basic vitesse wav waze windows wordpress youtube
Thème par Colorlib Propulsé par WordPress