LINUX.ORG.RU

История изменений

Исправление mydibyje, (текущая версия) :

Я к тому, что JSON не хранит в себе сложные правила форматирования (типа 5 строка имеет 3 отступа пробелами, а 6 строка 4 отступа, но табами), потому что изначально предназначен не для показа данных пользователю, максимум там можно только одновременно для всех полей объекта задать отступ (json.dumps(myobj, indent=4)) чтобы разработчику легче читалось, а не для каждого поля индивидуально. Для индивидуальной работы с каждым полем нужна дополнительная логика, да и надо где-то хранить значения отступов для каждого поля или как в вашем случае помечать поле НОВЫМ и применять к нему особое форматирование. То есть возможно придется в объект, который вы сериализуете в JSON, добавлять информацию о его (объекта) форматировании. Для вывода JSON в консоль и раскраски разным цветом существуют всякие Pygmentize и пр jq, а вот для кастомного форматирования для вывода в файл я не знаю готовых либ. Но возможно в вашем случае проще будет написать свою логику форматирования расширив класс JSONEncoder как тут в 6-ом листинге или пройтись регуляркой по строкам.

Исходная версия mydibyje, :

Я к тому, что JSON не хранит в себе сложные правила форматирования (типа 5 строка имеет 3 отступа пробелами, а 6 строка 4 отступа, но табами), потому что изначально предназначен не для показа данных пользователю, максимум там можно только одновременно для всех полей объекта задать отступ (json.dumps(myobj, indent=4)) чтобы разработчику легче читалось, а не для каждого поля индивидуально. Для индивидуальной работы с каждым полем нужна дополнительная логика, да и надо где-то хранить значения отступов для каждого поля или как в вашем случае помечать поле НОВЫМ и применять к нему особое форматирование. То есть возможно придется в объект, который вы сериализуете в JSON, добавлять информацию о его (объекта) форматировании. Для вывода JSON в консоль и раскраски разным цветом существуют всякие Pygmentize и пр jq, а вот для кастомного форматирования для вывода в файл я не знаю готовых либ. Но возможно в вашем случае проще будет написать свою логику форматирования расширив класс JSONEncoder как тут в 6-ом листинге или пройтись регуляркой по строкам.