json.dumps красиво распечатать в Python

Содержание
Введение
Спецификация
JSON
Словарь
json.dumps + json.loads
Вложенные объекты
Статьи про Python

Введение

Если нужно вывести в консоль словарь или json это можно сделать с помощью json.dumps

Спецификация json.dumps

Если вы хотите сразу же изучить полученный json можно воспользоваться методом dumps()

json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) Serialize obj to a JSON formatted str using this conversion table. The arguments have the same meaning as in dump(). Note Keys in key/value pairs of JSON are always of the type str. When a dictionary is converted into JSON, all the keys of the dictionary are coerced to strings. As a result of this, if a dictionary is converted into JSON and then back into a dictionary, the dictionary may not equal the original one. That is, loads(dumps(x)) != x if x has non-string keys.

JSON

Если нужно распечатать JSON

import json print(json.dumps(response.json(), indent=4))

Словарь

Если нужно распечатать не JSON а словарь, json.dumps нужно использовать так:

import json print(json.dumps(resp.dict, indent=4)) # Если нужно отсортировать словарь print(json.dumps(resp.dict, indent=4, sort_keys=True))

json.dumps + json.loads

Часто приходится использовать связку json.dumps + json.loads

import json response_json = json.loads(response.text) print(json.dumps(response_json, indent=4))

Обратиться ко вложенному объекту

Предположим, приходит следующий json

{ "address": { "version": 1, "date": "2021-Aug-11", "cities": [ { "id": "0", "name": "malaga", "place": { "id": "100", "name": "Форт", "status": "VISITED" } }, { "id": "1", "name": "benalmadena", "place": { "id": "150", "name": "Парк Палома", "status": "VISITED" } } ] } }

Из него нам интересен только статус городов: посещён или не посещён.

Нужно обратиться ко вложенным в json объектам

import json data_set = { "address": { "version": 1, "date": "2021-Oct-19", "cities": [ { "id": "0", "name": "malaga", "place": { "id": "100", "name": "Форт", "status": "VISITED" } }, { "id": "1", "name": "benalmadena", "place": { "id": "150", "name": "Парк Палома", "status": "VISITED" } } ] } } json_dump = json.dumps(data_set) response_json = json.loads(json_dump) cities = response_json["address"]["cities"] for city in cities: print(city["place"]["status"])

VISITED
VISITED

Похожие статьи
Python
Интерактивный режим
str: строки
\: перенос строки
Списки []
if, elif, else
Циклы
Методы
Функции
*args **kwargs
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Дата и время в Python
json.dumps
Selenium + Python
Сложности при работе с Python
DJANGO
Flask
Скрипт для ZPL принтера
socket :Python Sockets
Виртуальное окружение
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: