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类型对应关系
JSON | Python |
---|---|
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}