Pregunta 1¿Qué función muestra un diccionario anidado preservando su estructura con saltos de línea e indentación?
pprint — Mostrar dict y list anidados de forma legible
Este artículo forma parte del Curso de Python, con el que dominarás desde cero las habilidades necesarias para usar Python, desde lo básico hasta lo avanzado.
Lo que print apelmaza en una línea, pprint.pp lo muestra con saltos e indentación; pformat te devuelve la cadena ya formateada para pasarla al log. Practícalo con datos de pedidos.
Cuando usas print para depurar, los diccionarios y listas anidados se apilan en una sola línea ilegible todo el tiempo. El módulo pprint (pretty-print) es una herramienta de la biblioteca estándar que muestra estructuras anidadas con indentación y saltos de línea, lo que lo hace muy útil para depuración y salida de logs.
pp y pformat — Una imprime, la otra devuelve una cadena
pprint tiene dos funciones principales. pprint.pp(value) es una función que formatea e imprime directamente a la salida estándar, devolviendo None. pprint.pformat(value), por su parte, devuelve la cadena formateada sin imprimir nada en pantalla.
| Función | Propósito | Devuelve |
|---|---|---|
| pprint.pp(value) | formatear e imprimir a stdout | None (imprime directamente) |
| pprint.pformat(value) | devolver la cadena formateada | cadena formateada |
| indent=N | ancho de indentación (por defecto 1) | — |
| width=N | ancho máximo de línea (por defecto 80) | — |
| sort_dicts=False | preservar el orden de claves del dict (Python 3.8+) | — |
Mostrar la estructura con pprint.pp
pprint.pp(value) y print(value) se ven igual para valores simples, pero su salida diverge en cuanto tienes dicts o lists anidados — print lo apila todo en una línea, mientras que pp añade saltos de línea e indentación según la profundidad de la estructura.
Obtener la cadena formateada con pprint.pformat
pprint.pformat(value) devuelve la cadena formateada sin imprimir nada. Recurre a pformat cuando quieras redirigir la salida (pasarla a un logger, pegarle información extra antes/después y luego imprimir, o incrustarla en un mensaje de error). Las opciones width=N e indent=N funcionan igual que en pp.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Cuál usarías para obtener una cadena de pprint y pasarla a la salida de log?
Pregunta 3¿Cómo cambias el ancho de visualización de pprint.pp a 40 caracteres?