模块的补充

序列化模块

序列化:就是把其它类型的数据类型转换成 字符串 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'}

  

原文地址:https://www.cnblogs.com/lzqrkn/p/9513399.html