Используйте Python для управления форматом json.dump() с помощью kwarg "default="?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Используйте Python для управления форматом json.dump() с помощью kwarg "default="?

Сообщение Anonymous »

В Python мне приходится сохранять в файл хранилища массив пользовательских данных, состоящий из объектов JSON (простой формат: [{}, {}...]). По мере того, как программа собирает и записывает пользовательские данные, массив [] потенциально увеличивается до нескольких тысяч объектов. Каждый объект {} состоит примерно из пятидесяти пар ключ_значение.
Как бы я написал специальную функцию для json.dump(), используя собственный kwarg "default=", который будет начинать каждый объект с новой строки и добавлять дополнительное межстрочное пространство между? Использование kwarg "indent=" для красивой печати массива делает файл слишком длинным по вертикали, и без этого kwarg я получаю плотную массу трудночитаемых объектов.
Для иллюстрации проблема, возьмите гораздо более короткий массив.

Код: Выделить всё

example = [{"a":1, "b":2, "c":3,}, {"d":1, "e":2, "f":3,}, {"g":1, "h":2, "i":3}, {"j":6, "k":7, "l":8}]
Без использования отступов вывод в мой файл .json будет слишком компактным.

Код: Выделить всё

[{"a": 1, "b": 2, "c": 3}, {"d": 1, "e": 2, "f": 3}, {"g": 1, "h": 2, "i": 3}, {"j": 6, "k": 7, "l": 8}]
Если я использую отступ, я получаю узкий вертикальный столбец.

Код: Выделить всё

[
{
"a": 1,
"b": 2,
"c": 3
},
{
"d": 1,
"e": 2,
"f": 3
},
{
"g": 1,
"h": 2,
"i": 3
},
{
"j": 6,
"k": 7,
"l": 8
}
]
Чтобы минимизировать пробелы и сохранить читабельность, я хочу, чтобы выходные данные были в этом формате (здесь они упорядочены вручную).

Код: Выделить всё

[
{"a": 1, "b": 2, "c": 3},

{"d": 1, "e": 2, "f": 3},

{"g": 1, "h": 2, "i": 3},

{"j": 6, "k": 7, "l": 8}
]
Когда каждый объект содержит до пятидесяти пар ключ:значение, этот формат, даже с переносом, достигает обоих целей. Я удивлен, что метод не предоставляет такой возможности.
Но у меня слишком мало опыта, чтобы вводить символы новой строки и дополнительные пробелы в существующем методе json.dump(). Любая помощь?

Подробнее здесь: https://stackoverflow.com/questions/786 ... rg-default
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»