Si vous souhaitez une approche complète, mais succincte, de la gestion des structures de données du monde réel, qui sont souvent imbriquées et peuvent même contenir des cycles, je vous recommande de consulter le site suivant l'utilitaire remap du paquet utilitaire boltons .
Après pip install boltons
ou la copie iterutils.py dans votre projet, faites-le :
from boltons.iterutils import remap
drop_falsey = lambda path, key, value: bool(value)
clean = remap(metadata, visit=drop_falsey)
Cette page contient beaucoup plus d'exemples, y compris ceux qui utilisent des objets beaucoup plus grands provenant de l'API de Github.
Il est purement Python, donc il fonctionne partout, et est entièrement testé dans Python 2.7 et 3.3+. Le meilleur de tous, c'est que je l'ai écrit exactement pour des cas comme celui-ci, donc si vous trouvez un cas qu'il ne gère pas, vous pouvez me contacter pour le corriger. ici même .