2014-09-03 2 views
16

В питоне, если у меня есть объект JSON obj, то я можетраскраска JSON выхода в питоне

print json.dumps(obj, sort_keys=True, indent=4) 

, чтобы получить красивую распечатку объекта. Можно ли еще более отключить вывод: добавить несколько цветов в частности? Что-то вроде результата [1]

cat foo.json | jq '.' 

[1] jq JSON швейцарский армейский набор инструментов: http://stedolan.github.io/jq/

+0

Что такое 'jq'? Что оно делает? – 2014-09-03 07:45:44

+0

Возможно, у [ipython] (http://ipython.org/) есть что-то для этого, купите, я точно не знаю – stalk

+0

@Tichodroma: Добавлена ​​ссылка – Dror

ответ

24

Вы можете использовать Pygments раскрасить ваш вывод в формате JSON. Основываясь на том, что у вас есть:

formatted_json = json.dumps(obj, sort_keys=True, indent=4) 

from pygments import highlight, lexers, formatters 
colorful_json = highlight(unicode(formatted_json, 'UTF-8'), lexers.JsonLexer(), formatters.TerminalFormatter()) 
print(colorful_json) 

Выходной пример:

Output example of pygments colored code

+1

Что мне нужно, чтобы избежать 'NameError: name 'unicode' не определен'? – Dror

+5

Затем вы используете python 3 и должны просто использовать 'colorful_json = highlight (formatted_json, lexers.JsonLexer(), formatters.TerminalFormatter())' – arnuschky

Смежные вопросы