Я использую этот код, чтобы довольно напечатать некоторые dict
в формате JSON:Довольно печать в формате JSON отвалов
import json
d = {'a': 'blah', 'b': 'foo', 'c': [1,2,3]}
print json.dumps(d, indent = 2, separators=(',', ': '))
Выход:
{
"a": "blah",
"c": [
1,
2,
3
],
"b": "foo"
}
Это немного слишком много (перевод строки для каждого элемент списка!).
Какой синтаксис следует использовать, чтобы ...
{
"a": "blah",
"c": [1, 2, 3],
"b": "foo"
}
вместо этого?
Это не совсем ответ на ваш вопрос, но если вы просто ищете формат данных, глаза, вы можете попробовать YAML. Существует два синтаксиса для таких списков, как списки и словари, «блок» (где отступы показывают вложенность) и «поток» (где скобки выполняют эту работу). По умолчанию выход из PyYAML использует синтаксис «поток» для списков и словарей, которые не содержат каких-либо других контейнеров, что похоже на то, что вы хотите для красивой печати. – Blckknght
Спасибо @Blckknght.Является ли YAML зрелым/стабильным/портативным и, вероятно, будет доступен в будущих годах/будущих версиях python? Это будет стандарт? (извините за все эти вопросы;)) – Basj
Еще одно замечание: я хотел избежать преобразования в строку, потому что, когда я «загружаю» свой файл JSON в 'dict', если это строка, у меня больше нет доступа в 'list' (или мне нужно будет разобрать строку в списке, но это позор, чтобы это сделать ...) – Basj