python读写json文件

json释义
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

python内置类型 与 json类型对应关系

JSONPython
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None

 

编码(python内置类型->json类型)

json.dump(obj,fp)  //接收一个对象和写文件指针,将python内置类型数据转化为json类型数据写到文件对象中

json.dumps(obj)  //将python内置类型转化为json格式的str

官方文档

json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None,sort_keys=False, **kw)

json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

常用参数:

skipkey:keys不是内置数据类型时,该值设置为False时将抛出错误,设置为True时将跳过,默认False

indent 为缩进,默认为空

sort_keys:设置为True时将按key值排序,默认为False

xxx@xxx:$ touch a.json  //创建json文件 xxx@xxx:$ python3
>>> b = {'zhang':35,'li':48}
>>> fp = open('a.json','w')  //创建文件对象
>>> import json
>>> json.dump(b,fp)  //dump方法
>>> fp.close()
>>> test = json.dumps(a)  //dumps方法
>>> test
'{"li": 48, "zhang": 35}'
 xxx@xxx:$ cat a.json  //查看文件
 {"zhang: 48, "li": 35}

解码(json类型->python内置数据类型)

json.load(fp)  //接收一个读文件指针,将json文件内容解析为python内置类型数据

json.loads(s)  //接收一个json格式的str,解析为python内置类型数据

官方文档

json.load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

json.loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

常用参数:

object_hook:用于定制解码器,默认为dict类型的

>>> fp = open('a.json','r')
>>> b = json.load(fp)  
>>> b
{'zhang': 48, 'li': 35}
>>> c = json.loads(test)
>>> c
{'zhang': 48, 'li': 35}
原文地址:https://www.cnblogs.com/lht-record/p/8169406.html