Apprenez en lisant dans l'ordre

pprint — Afficher dict et list imbriqués lisiblement

Là où print tasse un dict / list imbriqué sur une ligne, pprint.pp met en forme avec sauts de ligne et indentation, et pformat renvoie la chaîne pour la passer à un log.

Quand tu utilises print pendant le débogage, les dictionnaires et listes imbriqués s'entassent sur une ligne illisible tout le temps. Le module pprint (pretty-print) est un outil de la bibliothèque standard qui affiche les structures imbriquées avec indentation et sauts de ligne, ce qui le rend précieux pour le débogage et les logs.

pp et pformat — L'un affiche, l'autre retourne une chaîne

pprint a deux personnages principaux. pprint.pp(value) est une fonction qui formate et affiche directement sur la sortie standard, en retournant None. pprint.pformat(value), en revanche, retourne la chaîne formatée sans rien afficher à l'écran.

pp vs pformat
valeur imbriquéedict / listpprint.pp(value)affiche sur stdoutretourne Nonevaleur imbriquéedict / listpprint.pformat(value)retourne la chaîneformatée
pp formate et affiche directement (retourne None). pformat se contente de retourner la chaîne formatée sans rien afficher. Utilise pformat quand tu veux retoucher la chaîne avant l'affichage, ou l'intégrer dans une ligne de log ou un message d'erreur.
FonctionRôleRetourne
pprint.pp(value)formate et affiche sur stdoutNone (affiche directement)
pprint.pformat(value)retourne la chaîne formatéechaîne formatée
indent=Nlargeur d'indentation (par défaut 1)
width=Nlargeur max de ligne (par défaut 80)
sort_dicts=Falsepréserve l'ordre des clés du dict (Python 3.8+)

Afficher la structure avec pprint.pp

pprint.pp(value) et print(value) se ressemblent pour les valeurs simples, mais leur sortie diverge dès qu'il y a des dicts ou listes imbriquésprint entasse tout sur une ligne, tandis que pp ajoute des sauts de ligne et une indentation correspondant à la profondeur de la structure.

Un dictionnaire de commande imbriqué order est préparé pour toi. Affiche-le avec print puis pprint.pp et compare visuellement les deux.

① Affiche d'abord --- print ---, puis print(order).

② Affiche ensuite --- pprint.pp ---, puis pprint.pp(order).

(Si tu exécutes correctement, une explication apparaîtra.)

Éditeur Python

Exécuter le code pour voir le résultat

Récupérer la chaîne formatée avec pprint.pformat

pprint.pformat(value) retourne la chaîne formatée sans rien afficher. Utilise pformat quand tu veux rediriger la sortie (la passer à un logger, coller des infos avant/après puis afficher, ou l'intégrer dans un message d'erreur). Les options width=N et indent=N fonctionnent comme pour pp.

Un dictionnaire de configuration config est préparé pour toi. Formate-le avec pformat et affiche-le avec une étiquette style log. Laisse pprint gérer la mise en forme ; concentre-toi sur le traitement du résultat comme une chaîne.

① Formate config avec pprint.pformat et width=40, en stockant la chaîne formatée dans une variable nommée formatted.

② Affiche la ligne d'en-tête [CONFIG] Paramètres au démarrage avec print, puis print(formatted).

Éditeur Python

Exécuter le code pour voir le résultat
QUIZ

Vérification des connaissances

Répondez à chaque question une par une.

Question 1Quelle fonction affiche un dictionnaire imbriqué en préservant sa structure avec sauts de ligne et indentation ?

Question 2Lequel utiliserais-tu pour obtenir une chaîne depuis pprint et la passer à une sortie de log ?

Question 3Comment changes-tu la largeur d'affichage de pprint.pp à 40 caractères ?