序列化与反序列化(重点难点)
系列化与反序列化定义:
序列化:在Python中,序列化指的是把python的对象编码成为json格式的字符串。
反序列化:把json格式字符串解码为Python数据对象。
注意:在Python中,把内置数据结构如元素,字典,列表进行序列化处理后,类型为str,而经过发序列化处理后,数据类型依然是列表和字典(元组经过序列化和反序列化后数据类型是字典,不再是元素
)
在json库中,反序列化和序列化的处理分为两部分,一部分是对具体列表数据的处理,另外一部分是对文件内容的处理。
具体列表数据的处理,代码如下:
import json list1=[1,2,3,4,5] print("\n对列表进行序列化与反序列化处理:") print("列表为序列化之前的数据类型:",type(list1)) #对列表1进行序列化处理 list_str = json.dumps(list1) print('列表序列化后的内容:{0}和类型{1}',format(list_str,type(list_str))) #d对字符串进行反序列化处理 str_list=json.loads(list_str) print("字符串list_str反序列化后的内容:{0}和类型(1)",format(str_list,type(str_list)))
只是一个例子,字典同理,需要注意的是元祖转换后是字典。
对对文件的处理:
序列化的郭晨是把数据存储到文件的过程,反序列化的过程是读取文件里面的内容。
import requests import json def login(): querystring = {"wd":"selenium"} r = requests.get(url="https://www.baidu.com/s",params=querystring) #把服务端的数据存储到文件json.md中。 json.dump(r.json(),open('json.md','w')) login()
实战对,拉勾网自动化测试岗位进行筛选。
代码如下: