问题:在json库进行json文件输出的时候,json文本文件总是输出成一行,怎样进行格式化输出?
用json文件存储些文件属性什么的,发现用json包里的json.dump()方法存json文件的效果~全都在一行,失去了json的字典结构化的灵魂,然后,发现其实json.dump()方法其实只需要设置一个参数就达到格式化的效果了……
json.dump()
直接把常用参数列一下好了
| 参数名 | 解释 |
|---|---|
| obj | 要存入json文件的python对象 |
| fp | 文件句柄 |
| ensure_ascii | 设置为False的话才可以把中文以中文的形式存到文件里,否则会是’\xXX\xXX’这种 |
| indent | 缩进的空格数,设置为非零值时,就起到了格式化的效果,比较美观 |
这里我是用的是jumps,同理,indent也可以将输出的json格式化
with open("xxxxxx.json","w") as f:
f.write(json.dumps(dict,indent=4))
也就是说在使用json.dump()的时候设置一下indent参数的值就好了。比如json.dump(json_dict, f, indent=4),加与不加的区别如下:
不加参数
{"file_name:": "EBO-EBO-E46_EA106A.png", "words_block_count": "3", "info": [{"text:": "X10106", "scores:": "0.99761707", "boxes:": [[34.0, 10.0], [90.0, 10.0], [90.0, 23.0], [34.0, 23.0]]}]}
加上参数
{
"file_name:": "EBO-EBO-E46_EA106A.png",
"words_block_count": "3",
"info": [
{
"text:": "X10106",
"scores:": "0.99761707",
"boxes:": [
[
34.0,
10.0
],
[
90.0,
10.0
],
[
90.0,
23.0
],
[
34.0,
23.0
]
]
}
]
}