Aller au contenu
Cheat Sheet
Python

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

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 audio bootloader convertion custom rom dict drivers excel fastboot firefox kobo lambda library lineageos linux manette markdown moto g LTE motorola mp3 nas netsh notepad++ password peregrine php pip python qlik qliksense qlikview realtek rom selenium synology twrp venv virtualenv visual c++ wifi windows wordpress youtube yt-dlp

Tags

android apache audio bootloader convertion custom rom dict drivers excel fastboot firefox kobo lambda library lineageos linux manette markdown moto g LTE motorola mp3 nas netsh notepad++ password peregrine php pip python qlik qliksense qlikview realtek rom selenium synology twrp venv virtualenv visual c++ wifi windows wordpress youtube yt-dlp
Thème par Colorlib Propulsé par WordPress