How To Effortlessly Pretty Print Stuff In Python

 Pretty printing in Python makes complex or nested data structures more readable and is effortless with built-in and external libraries. Here’s how you can do it:


1. Use the pprint Module

The pprint module is built into Python and specifically designed for pretty-printing.

import pprint

data = {"name": "Alice", "age": 30, "hobbies": ["reading", "cycling", "traveling"]}

# Pretty print
pprint.pprint(data)
  • Advantages:
    • Automatically handles indentation.
    • Makes nested structures easy to read.

>2. Use JSON for Pretty-Printing

For dictionaries or JSON-like data, the json module can be used to format the output.

import json

data = {"name": "Alice", "age": 30, "hobbies": ["reading", "cycling", "traveling"]}

# Pretty print as JSON
print(json.dumps(data, indent=4))
  • Advantages:
    • Great for JSON objects.
    • You can adjust the indent level to your liking.

3. Use tabulate for Tabular Data

If you are working with tabular data, the tabulate library is excellent.

from tabulate import tabulate

data = [["Name", "Age", "Hobby"],
        ["Alice", 30, "Reading"],
        ["Bob", 25, "Cycling"]]

# Pretty print as a table
print(tabulate(data, headers="firstrow", tablefmt="grid"))
  • Install with pip install tabulate.

4. Use rich for Gorgeous Console Output

The rich library can pretty-print any data structure with enhanced aesthetics.

from rich import print

data = {"name": "Alice", "age": 30, "hobbies": ["reading", "cycling", "traveling"]}

# Pretty print with rich
print(data)
  • Install with pip install rich.
  • Supports colorful, tree-like formatting.

5. Use PrettyTable for Tabular Data

For structured tabular data, prettytable provides intuitive formatting.

from prettytable import PrettyTable

table = PrettyTable(["Name", "Age", "Hobby"])
table.add_row(["Alice", 30, "Reading"])
table.add_row(["Bob", 25, "Cycling"])

# Pretty print the table
print(table)
  • Install with pip install prettytable.

6. Use Debuggers

Some IDEs like PyCharm, VSCode, and Jupyter Notebook have built-in pretty-print capabilities in their variable viewers.


Summary Table

Library Use Case Installation
pprint Basic pretty-printing of dicts Built-in
json JSON-like structures Built-in
tabulate Tabular data pip install tabulate
rich Aesthetic and colorful output pip install rich
prettytable Tabular data pip install prettytable

Each method is straightforward and suits different types of data. Happy coding! 🚀