模块的补充
序列化模块
序列化:就是把其它类型的数据类型转换成 字符串 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'}
浙公网安备 33010602011771号