;;学习目标;1;1;1;json库提供了四个方法来帮助实现,它们是:dumps、dump、loads、load,用于字符串和Python数据类型间进行转换。;例1:请将下列JSON格式字符串解码转换成Python类型对象。
代码如下:
demo_obj={name:张三,age:18,gender:男}
dic=json.loads(demo_obj)?
其中demo_obj表示json格式字符串,将其解码转换成Python对象可以使用json.loads()方法,只需将demo_obj传入到此方法的括号里即可,最终转换为python字典类型的对象,对象名为dic。;例2:请将例1中名为dic的Python对象编码为JSON字符串
代码如下:
json_obj=json.dumps(dic,ensure_ascii=False,indent=4)?
要想将Python对象类型编码为JSON字符串,可以使用json.dumps()方法,需将dic变量传入到此方法的括号里,其中ensure_ascii参数设置为False表示的是不使用ASCII码进行编码,这样就可以正常显示中文了;另外,indent参数表示缩进,可以格式化json字符串,默认无缩进。下面将转换后的结果展示如下:
{
name:张三,
age:18,
gender:男
}?
可以明显的看到转换后的json字符串缩进了4个字符。;例3:将Python对象编码为JSON字符串后写入文件
代码如下:
withopen(person.json,w,encoding=utf-8)asf:
json.dump(dic,f,ensure_ascii=False,indent=4)?
首先使用withopen创建一个写入文件对象f,指定“w”参数将字符串写入到person.json的文件中,注意encoding参数使用utf-8码,接着依次在json.dump()方法中传入dic对象、写入文件对象f等参数即可。;例4:读取json文件中json形式的字符串,并转换成python对象
代码如下:
withopen(person.json,r,encoding=utf-8)asf:
dic=json.load(f)?
使用withopen创建一个读入文件对象f,指定“r”参数读取person.json文件,使用json.load()方法读取person.json文件中的json字符串,并转换成python对象dic。;JSONPath用法:;例如:下图的数据是经过json.loads()方法转换为python的一个对象,如何从根节点开始,匹配所有的name节点呢?根据jsonpath语法可以使用‘$..name’匹配