在python中,如果我有一个JSON对象obj
,那么我可以
print json.dumps(obj, sort_keys=True, indent=4)
为了获得对象的漂亮打印输出。是否有可能进一步美化输出:特别添加一些颜色?像[1]
的结果cat foo.json | jq '.'
[1] jq
JSON Swiss Army工具箱:http://stedolan.github.io/jq/
答案 0 :(得分:36)
您可以使用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)
输出示例:
答案 1 :(得分:3)
接受的答案似乎不适用于更新版本的 Pygments 和 Python。所以这里是你如何在 Pygments 2.7.2+ 中做到这一点:
import json
from pygments import highlight
from pygments.formatters.terminal256 import Terminal256Formatter
from pygments.lexers.web import JsonLexer
d = {"test": [1, 2, 3, 4], "hello": "world"}
# Generate JSON
raw_json = json.dumps(d, indent=4)
# Colorize it
colorful = highlight(
raw_json,
lexer=JsonLexer(),
formatter=Terminal256Formatter(),
)
# Print to console
print(colorful)