Как красиво вывести JSON-файл в Python (6 методов)
В этом уроке вы узнаете, как использовать Python для красивой печати JSON. Когда вы получаете файл JSON или получаете JSON из API, он обычно будет в минифицированной версии, чтобы сэкономить пропускную способность.
Но для чтения JSON или отладки часто бывает проще распечатать JSON в более структурированном формате. Красивая печать означает наличие правильных переносов строк, отступов, пробелов и общей структуры.
К концу этого урока вы узнаете:
Как красиво распечатать объект JSON в Python
Как красиво распечатать файл JSON с помощью Python
Как красиво распечатать файл JSON с помощью модуля pprint
Как сортировать ключи в файле JSON во время красивой печати
Как сохранить красиво напечатанный объект JSON в файл
Оглавление
Что такое JSON?
JSON расшифровывается как JavaScript Object Notation (Нотация Объектов JavaScript). Хотя в названии и присутствует JavaScript, не пугайтесь! В этом руководстве мы будем использовать Python для работы с JSON-файлом. JSON — это легкий формат обмена данными, который легко читается и записывается машинами, а также прост для понимания людьми.
Когда вы смотрите на JSON-файл, вы, вероятно, заметите, насколько JSON похож на словарь Python. Фактически, это верно и для многих других языков, что делает JSON отличным форматом обмена данными. JSON будет содержать ключ и значение для каждой пары, разделенных запятыми. Значение также может быть списком (или массивом) элементов или другим объектом, похожим на словарь.
Как красиво распечатать файл JSON на Python
Давайте посмотрим, что мы подразумеваем под "красивым выводом" JSON в Python. Обычно JSON поставляется в минимизированной форме, чтобы сэкономить пропускную способность при загрузке. Из-за этого он часто выглядит примерно так:
Когда мы хотим "красиво вывести" JSON-файл, мы подразумеваем добавление соответствующей структуры, отступов, пробелов и т. д. Наш приведенный выше пример тогда будет выглядеть так:
Теперь, когда вы знаете, как выглядит красиво отформатированный JSON-файл, давайте посмотрим, как мы можем красиво вывести JSON-файл в Python.
Давайте посмотрим, как вы можете красиво вывести JSON-файл с помощью Python. Если у вас нет собственного JSON-файла или вы просто хотите следовать руководству построчно, я предоставил образец JSON-файла. Вы можете скачать файл здесь, просто нажав «Сохранить как» по этой ссылке.
Нашим первым шагом будет чтение JSON-файла. Мы можем добиться этого, используя менеджер контекста для загрузки файла. Давайте посмотрим, как мы можем это сделать в Python:
Разберем, что мы сделали выше:
Используя ключевое слово
with
, Python управляет некоторыми ресурсами открытия файла для нас.Затем мы можем, как показано выше, использовать присвоенный нами псевдоним
read_file
в части нашего кода с отступом.Мы используем функцию
json.load()
, чтобы загрузить файл в словарь Python.Когда мы распечатываем файл, мы видим, что он распечатывается как минимизированная, плоская версия JSON-кода.
Библиотека json
поставляется с функцией dumps()
, которая позволяет сбросить объект в виде строки. Один из параметров функции позволяет нам настроить отступ, с которым мы хотим, чтобы был отформатирован наш JSON-объект.
Давайте посмотрим, как мы можем распечатать его в более структурированном формате, используя метод json_dumps()
:
Разберем, что мы здесь сделали:
Мы загружаем путь к нашему файлу в переменную
file_path
. Если вы используете Windows, может быть полезно добавить префиксr
к вашей строке, чтобы загрузить ее как необработанную строку, чтобы предотвратить случайное экранирование обратными слешами.Затем мы используем менеджер контекста для чтения нашего файла (это обозначается
mode='r'
)Мы загружаем наш JSON-объект с помощью метода
json.load()
Затем мы сбрасываем этот объект в строку с помощью метода
.dumps()
, указывая количество пробелов, которое мы хотим использовать для отступа нашего JSONНаконец, мы распечатываем файл, и он выглядит намного, намного лучше!
В следующем разделе вы узнаете, как использовать Python для красивого форматирования данных JSON, которые вы получаете от API.
Как красиво вывести JSON из API в Python
Часто, когда вы работаете с JSON в Python, это происходит через API с использованием библиотеки requests
. Давайте воспользуемся Bored API, чтобы загрузить образец JSON-файла. Для этого мы импортируем requests
для обработки вызова API.
В приведенном выше примере мы:
Импортировали библиотеки
requests
иjson
.Затем мы используем функцию
requests.get()
, чтобы загрузить конечную точку API из Bored API и присвоить ее нашей переменнойresponse
.Затем мы используем метод
.json()
, который сериализует возвращенную строку в словарь Python, анализируя возвращенные данные JSON.
Теперь, когда у нас есть JSON, загруженный из API с помощью Python, давайте посмотрим, как мы можем распечатать его в более красивом формате:
Сортировка ключей при красивом выводе JSON-файла в Python
При работе с большими JSON-файлами может быть очень полезно отсортировать ключи в алфавитном порядке, чтобы лучше понимать файл. Мы можем использовать параметр sort_keys=
, чтобы гарантировать, что наши ключи отсортированы в алфавитном порядке.
Давайте посмотрим, как отсортировать наши ключи JSON в красиво отформатированном объекте:
В приведенном выше блоке кода мы сериализовали ответ API с помощью библиотеки requests
. Это позволило нам затем сбросить объект в строку с помощью функции json.dumps()
. В этой функции мы указали, что хотим сделать отступ значений с помощью четырех пробелов и что мы хотим, чтобы ключи были отсортированы в алфавитном порядке.
Теперь, когда у вас есть четкое представление о том, как красиво распечатать JSON-файл, давайте посмотрим, как сохранить эти красиво отформатированные объекты в файл.
Как красиво вывести JSON-файл из командной строки
При работе в терминале бывает полезно красиво распечатать JSON-файл непосредственно в терминале. Python делает это довольно просто! Модуль json.tool
предоставляет простой и элегантный интерфейс командной строки для красивой печати JSON-объектов.
Находясь в терминале, вы можете просто вызвать следующую команду:
Важная часть для запуска здесь — python3 -m json.tool sample.json
, где sample.json
— это путь к вашему JSON-файлу. Это красиво распечатает JSON-файл прямо в вашем терминале!
Как сохранить красиво отформатированный JSON в файл с помощью Python
Теперь, когда вы знаете, как использовать Python для красивой печати JSON-файла и ответа от веб-API, давайте посмотрим, как вы можете сохранить отформатированную версию JSON-объекта в файл. Это может быть полезно при работе с большими объектами, так как чтение вывода в терминале вашего редактора кода может быть сложнее, чем необходимо.
Для этого мы снова будем использовать менеджер контекста. Однако на этот раз вместо использования его для управления чтением файла мы будем использовать его для записи файла. Из-за этого мы изменим mode=
на 'w'
для записи.
Давайте начнем!
Давайте посмотрим, что мы здесь сделали:
Мы создали наш объект
response
.Мы создали переменную
save_filepath
, указывающую, куда мы хотим сохранить наш файл. В этом случае файл будет сохранен туда, где выполняется скрипт.Мы используем ключевое слово
with
для создания файла, доступного для записи, куда затем сбрасываем наш объект, используя ключевое словоindent=
.Менеджер контекста обработает закрытие файла после того, как он закончит сохранение файла для нас.
Используя этот подход, вы успешно сохранили красиво отформатированный JSON-файл с помощью Python!
Как красиво вывести JSON-файл в Python с помощью pprint
Модуль pprint
(«pretty print») встроен в Python 3 и позволяет легко красиво выводить различные объекты. Среди этих объектов, доступных для более красивой печати, есть JSON-объекты, которые были сериализованы в словари Python!
Поскольку библиотека pprint
встроена, вам не нужно ее устанавливать. Чтобы использовать библиотеку, мы можем импортировать только функцию pprint
из библиотеки.
В приведенном выше коде мы загрузили JSON-файл, как делали и раньше, используя функцию json.load()
. Затем мы передали сериализованный объект в функцию pprint()
, которая позволяет нам распечатать файл в более красивом, несжатом виде.
Заключение
В этом посте вы узнали, как красиво вывести JSON-объект в Python. Это может быть полезным навыком, когда вы углубляетесь в анализ данных JSON или устраняете неполадки, связанные с неправильной работой чего-либо. Вы узнали, как красиво вывести JSON-объект из JSON-файла, как красиво вывести ответ JSON от веб-API в Python, а также как использовать Python для сохранения красиво отформатированного JSON в файл.
Чтобы узнать больше о модуле JSON, ознакомьтесь с официальной документацией здесь.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с учебными пособиями ниже:
Аутентификация с помощью Python Requests: Полное руководство
Использование заголовков с Python requests
Как установить пакет requests в Python – Windows, macOS и Linux
Last updated