序列化模块
序列化:就是把其它类型的数据类型转换成 字符串 bytes 的过程
json模块 不支持连续的读和写
import json
dumps loads 用法
dic = {'key':'v1','key2':'v2'} import json ret = json.dumps(dic) print(ret,type(ret)) #{"key": "value", "key2": "value2"} <class 'str'> 序列化
ret1 = json.loads(ret)
print(ret1,type(ret1))
#{'key':'v1','key2':'v2'}<class 'dict'> 反序列化
dumps dump 向文件中记录字典的用法
dic = {'key' : 'value','key2' : 'value2'} ret = json.dumps(dic) #转化成字符串类型 with open('lilili','a') as f: #将转化后的添加到 lilili 这个文件中,没有自己建立 f.write(ret) dump dic = {'key' : 'value','key2' : 'value2'} with open('lilili','a') as f: json.dump(dic,f) #直接写入文件中 #json.dump(写入的内容,写入到哪个文件)
loads load 文件读取的用法
with open('lilili','r') as f: str_dic = f.read() dic = json.loads(str_dic) print(dic.keys()) #{'key','key1'} with open('lilili','r') as f: dic = json.load(f) print(dic.keys()) #{'key','key1'}
pickle模块
pickle支持在 python 中几乎所有的数据类型
可以多次dump和load
dumps loads
dic = {(1,2,3):{'a','b'},1:'abc'} ret = pickle.dumps(dic) print(ret) #输出的是字节 ret1 = pickle.loads(ret) print(ret1) # #{(1,2,3):{'a','b'},1:'abc'}
dump,load
dic = {(1,2,3):{'a','b'},1:'abc'} with open('nihao','wb') as f: pickle.dump(dic,f) #把dic字典添加到 nihao 这个文件里了,因为是字节,所以说写用 wb,下面同理 with open('nihao','rb') as f: rey = pickle.load(f) print(rey) #{(1,2,3):{'a','b'},1:'abc'}