Python: Красивая Печать Словаря (Dictionary) – 4 Способа

В этом учебнике вы узнаете, как использовать Python для красивого вывода словаря (dictionary). Вы узнаете, как использовать библиотеку pprint, а также библиотеку json для этого. Вы также узнаете, как красиво выводить вложенные словари в Python. Наконец, вы узнаете, как сохранить красиво выведенный словарь в Python в файл.

Словари являются ключевым компонентом работы с данными в Python, включая данные, загруженные из интернета. Многие API возвращают данные в формате JSON, который очень похож на форматирование словарей Python. Словари предоставляют невероятно полезные способы хранения и извлечения данных. Однако они могут быть немного сложными для чтения. Поэтому часто полезно уметь выводить свои словари в более удобочитаемом формате. Без лишних слов, давайте посмотрим, что вы узнаете!

Содержание

Что такое словари Python?

Словари Python — это структуры данных, которые используют пары ключ:значение для хранения и извлечения данных. Ключи уникальны в словарях Python и должны состоять из неизменяемых типов данных (например, строк или целых чисел), тогда как значения могут состоять из чего угодно, включая дополнительные словари.

Давайте посмотрим, как выглядит словарь в Python:

sample_dict = {
    'age': 31,
    'gender': 'male',
    'books': ['Harry Potter', 'Lord of the Rings']
}

Мы можем извлечь значение, если знаем ключ словаря. Например, если мы хотим извлечь значение для age, мы можем просто написать: print(sample_dict.get('age')), что вернет 31.

Теперь, когда у нас есть представление о том, что такое словари Python, давайте посмотрим, как их красиво выводить.

Красивый вывод словаря в Python с помощью pprint

Python поставляется с встроенной библиотекой под названием pprint, что означает pretty-print. С помощью этой библиотеки мы можем выводить более красиво отформатированные структуры данных, включая словари.

Библиотека pprint позволяет нам указать ряд различных параметров, включая следующие:

  • indent: количество пробелов для отступа каждой строки, значение по умолчанию — 1

  • width: максимальное количество символов, разрешенных в одной строке, по умолчанию — None (то есть максимум)

  • depth: количество уровней для отображения при использовании вложенных типов данных, по умолчанию — None (то есть отображаются все уровни глубины)

  • stream: используется для указания выходного потока и может использоваться для сохранения в файл

  • compact: если установлено значение True, значения будут выводиться в одну строку до определенной ширины

  • sort_dicts: если True, выводит пары ключ-значение в алфавитном порядке ключей. По умолчанию True

Давайте загрузим словарь и посмотрим, как мы можем красиво вывести его с помощью Python:

# Красивый вывод словаря с использованием pprint
import pprint

sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
pprint.pprint(sample_dict)

# Возвращает:
# {'name': 'Nik',
#  'age': 31,
#  'books': ['Harry Potter', 'Lord of the Rings'],
#  'gender': 'male'}

В следующем разделе вы узнаете, как использовать библиотеку JSON для красивого вывода словаря Python.

Красивый вывод словаря в Python с помощью JSON

Как упоминалось ранее, словари Python имеют много общих характеристик с объектами JSON. Благодаря этому мы можем использовать библиотеку JSON для возврата отформатированной строки JSON.

В библиотеку json встроена функция .dumps(), которая преобразует объект в строку. Давайте посмотрим, как выглядит функция .dumps() и какие параметры она принимает:

  • sort_keys: сортирует ключи словаря, по умолчанию False

  • indent: указывает Python, сколько пробелов использовать для отступа уровней

Давайте используем тот же словарь, что и выше, и красиво выведем его с помощью библиотеки json в Python:

# Красивый вывод словаря с использованием json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps(sample_dict, indent=4)

print(pretty)

# Возвращает:
# {
#     "name": "Nik",
#     "age": 31,
#     "gender": "male",
#     "books": [
#         "Harry Potter",
#         "Lord of the Rings"
#     ]
# }

Мы видим, что это возвращает очень похожий вывод словаря, с одним ключевым отличием: список также выводится на отдельных строках, что делает его проще для чтения. Это, конечно, гораздо более красивый способ вывода ваших словарей.

В следующем разделе вы узнаете, как красиво выводить вложенный словарь в Python.

Красивый вывод вложенного словаря в Python

В многих случаях ваши словари будут сложными. Вы даже можете столкнуться со словарями, содержащими другие словари. Например, у вас может быть словарь, содержащий информацию о разных людях. Каждый ключ словаря верхнего уровня будет представлять имя человека, а значение будет другим словарем, который будет описывать ключевые атрибуты человека.

Из-за сложности словарей, с которыми вы можете столкнуться, чтобы лучше понять их структуру, вы, возможно, захотите выводить их таким образом, чтобы это более точно описывало их структуру.

С помощью библиотеки json это на самом деле очень просто! Это работает так же, как и при выводе обычного словаря. Давайте посмотрим:

# Красивый вывод вложенного словаря с использованием json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps(sample_dict, indent=4, sort_keys=True)

print(pretty)

# Возвращает:
# {
#     "Joe": {
#         "age": 40,
#         "books": [
#             "Lord of the Flies"
#         ],
#         "gender": "male"
#     },
#     "Nik": {
#         "age": 31,
#         "books": [
#             "Harry Potter",
#             "Lord of the Rings"
#         ],
#         "gender": "male"
#     }
# }

В следующем разделе вы узнаете, как сохранить красиво выведенный словарь в файл.

Сохранение красиво выведенного словаря в файл

Наконец, давайте посмотрим, как сохранить красиво выведенный словарь в файл. Мы можем использовать библиотеку pprint для этого с помощью менеджера контекста.

Давайте посмотрим, как это можно сделать с помощью Python:

# Сохранение красиво выведенного словаря в файл
import pprint

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}

with open('path_to_file', 'w') as file_name:
    pprint.pprint(sample_dict, file_name)

Мы используем менеджер контекста с функцией open(), чтобы связать с определенным файлом, куда мы хотим сохранить наш словарь, и затем используем параметр 'w', чтобы указать, что мы хотим записать в файл. Затем мы передаем словарь и это имя файла в функцию pprint(), чтобы сохранить его в файл.

Заключение

В этой статье вы узнали, как использовать Python для красивого вывода словаря. Вы узнали, как это сделать с помощью библиотек pprint и json, и узнали, в чем различие между этими двумя подходами. Вы также узнали, как красиво выводить вложенные словари в Python, а также как сохранять красиво выведенные словари в файл.

Чтобы узнать больше о библиотеке pprint, ознакомьтесь с официальной документацией здесь..

Last updated