背景
最近自己搞些小东西,需要用json文件存储些文件属性什么的,但是发现用json
包里的json.dump()
方法存json文件的效果好丑……(其实是没仔细看方法), 于是上网找了一份格式化json文件的代码,效果挺不错,用了递归的思想,学习了一波并找到了其中一点小bug。然后,发现其实json.dump()
方法其实只需要设置一个参数就达到格式化的效果了……
下面介绍一下json.dump()
和我修改后的那份代码,附原github地址。
json.dump()
直接把常用参数列一下好了
参数名 | 解释 |
---|---|
obj | 要存入json文件的python对象 |
fp | 文件句柄 |
ensure_ascii | 设置为False的话才可以把中文以中文的形式存到文件里,否则会是’\xXX\xXX’这种 |
indent | 缩进的空格数,设置为非零值时,就起到了格式化的效果,比较美观 |
也就是说在使用json.dump()
的时候设置一下indent
参数的值就好了。比如json.dump(json_dict, f, indent=4)
,加与不加的区别如下:
1 | {"title_pinyin":"gywxw","title":"隔云勿相望","url":"http://www.ty2016.net/book/gywxw/","description":"大学刚毕业,她嫁给了林安森可是结婚三年,电视上常看到他出席各种场合携女相伴,她却再没再亲眼见过他。"} |
1 | { |
递归实现
直接粘过来了,不难理解,效果跟上边是一样的。
1 | # -*- encoding: utf-8 -*- |
后记
以后碰见问题不能这样焦躁了,先静下心来看看API吧,说不定答案就在里面。