1、注意事项
json文件即使为空,内部也要有一个空的{},否则会报错
2、读取json
方法:json.loads 可以将包含了一个JSON数据的str、bytes、bytearray对象转化成一个Python Dictionary。
import json def lx(): zy = json.loads('{"inf": Infinity, "nan": NaN, "ninf": -Infinity}') print(zy) if __name__ == '__main__': lx()
3、将Python对象转换为json对象
方法:json.dumps dumps接受一个python对象作为必须参数(其他参数可选),而这个对象可以是任何python的数据类型。
import json def lx(): data={ 'a':2, 'b':'练习' } du = json.dumps(data) print(du) if __name__ == '__main__': lx()
4、将Python对象转换为可以储存到文件的fp文件流
方法:json.dump
5、将fp文件流转换为Python对象
方法:json.load
其他常用参数:
Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key。
参考来源:https://www.jianshu.com/p/c7b3cac59ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示。
indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据,否则会换行且按照indent的数量显示前面的空白,这样打印出来的json数据也叫pretty-printed json。
separators:分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就是(',',':');这表示dictionary内keys之间用“,”隔开,而KEY和value之间用“:”隔开。
encoding:默认是UTF-8,设置json数据的编码方式。
sort_keys:将数据根据keys的值进行排序。