如何用Python打印JSON文件?
当前回答
Pygmentize是为终端命令的输出着色的强大工具。
下面是一个使用它向json.tool输出添加语法高亮显示的示例:
echo '{"foo": "bar"}' | python -m json.tool | pygmentize -l json
结果如下:
在前面的堆栈溢出回答中,我详细介绍了如何安装和使用pygmentize。
其他回答
使用这个函数,不用担心,你必须再次记住你的JSON是str还是dict-看看漂亮的打印:
import json
def pp_json(json_thing, sort=True, indents=4):
if type(json_thing) is str:
print(json.dumps(json.loads(json_thing), sort_keys=sort, indent=indents))
else:
print(json.dumps(json_thing, sort_keys=sort, indent=indents))
return None
pp_json(your_json_string_or_dict)
使用json.dump()或json.dumps()的indent关键字参数指定要使用的缩进量:
>>> import json
>>>
>>> your_json = '["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> parsed = json.loads(your_json)
>>> print(json.dumps(parsed, indent=4))
[
"foo",
{
"bar": [
"baz",
null,
1.0,
2
]
}
]
要解析文件,请使用json.load():
with open('filename.txt', 'r') as handle:
parsed = json.load(handle)
我认为最好先解析json,以避免错误:
def format_response(response):
try:
parsed = json.loads(response.text)
except JSONDecodeError:
return response.text
return json.dumps(parsed, ensure_ascii=True, indent=4)
Pygmentize是为终端命令的输出着色的强大工具。
下面是一个使用它向json.tool输出添加语法高亮显示的示例:
echo '{"foo": "bar"}' | python -m json.tool | pygmentize -l json
结果如下:
在前面的堆栈溢出回答中,我详细介绍了如何安装和使用pygmentize。
这里有一个简单的例子,可以用Python将JSON以一种很好的方式打印到控制台,而不需要将JSON作为本地文件存储在计算机上:
import pprint
import json
from urllib.request import urlopen # (Only used to get this example)
# Getting a JSON example for this example
r = urlopen("https://mdn.github.io/fetch-examples/fetch-json/products.json")
text = r.read()
# To print it
pprint.pprint(json.loads(text))
推荐文章
- 如何激活蟒蛇环境
- 省略[…]意思是在一个列表里?
- 为什么PHP的json_encode函数转换UTF-8字符串为十六进制实体?
- 为什么我得到“'str'对象没有属性'读取'”当尝试使用' json。载入字符串?
- 不区分大小写的列表排序,没有降低结果?
- 排序后的语法(key=lambda:…)
- 在烧瓶中返回HTTP状态代码201
- Ajax会调用什么样的响应,比如'for (;;);{json data}的意思?
- 在JavaScript中将JSON字符串解析为特定对象原型
- 使用python创建一个简单的XML文件
- APT命令行界面式的yes/no输入?
- 如何打印出状态栏和百分比?
- 在Python中获取大文件的MD5哈希值
- 在Python格式字符串中%s是什么意思?
- 如何循环通过所有但最后一项的列表?