json、pickle模块
json模块
1.dumps和loads这一对dumps用于将数据结构化为str像是出储存,loads解开结果
1 import json 2 date = {'name':'Tom', 'age':18} 3 date1 = json.dumps(date) 4 date2 = json.loads(date1) 5 print(date2['age'])
结果:
18
2.dump和load这一对,dump必须传文件描述符,将序列化的str保存到文件中。load只接收文件描述符,完成了读取文件和反序列化。
1 import json 2 date = {'name':'Tom', 'age':18} 3 with open('test.txt', 'r+') as file: 4 json.dump(date, file) 5 6 with open('test.txt', 'r+') as file: 7 print(json.load(file)['age'])
结果:
18
dumps:无文件操作 dump:序列化+写入文件
loads:无文件操作 load: 读文件+反序列化
pickle模块
json模块和picle模块都有 dumps、dump、loads、load四种方法,而且用法一样。
不用的是json模块序列化出来的是通用格式,其它编程语言都认识,就是普通的字符串,
而picle模块序列化出来的只有python可以认识,其他编程语言不认识的,表现为乱码
不过picle可以序列化函数,但是其他文件想用该函数,在该文件中需要有该文件的定义(定义和参数必须相同,内容可以不同)