首页 > 代码库 > 序列化

序列化

模块  json & pickle            

 

把str/int字典写入文件

f=open("user_acc.txt","w")

 

info={

alben:123,

nichole:321

}

 

f.write(str(info))

 

 

读取字典文件:

按照常规读取方法编写脚本——

with open(user_acc.txt) as f:

data=f.read()

for I in data:

print (i)

 

这时候,python是一个字符一个字符的读取的,读取的内容完全不是字典格式的。

 

原因:

 因为存储在磁盘上的数据是str格式的,但是读取文件的时候是通过2进制的格式存放在内存中的。

 

序列化:

2进制到字符串

反序列化:

字符串到2进制

 

通过pickle实现序列化与反序列化——

把字典格式以二进制的格式写入文件:

通过pickle模块

import pickle

 

f=open("user_acc.txt","wb")

 

info={

alben:123,

nichole:321

}

f.write(pickle.dumps(info))

 

这时候user_acc.txt直接打开显示的不是人为直观理解的格式

 

读取该文件:

import pickle

 

with open(user_acc.txt,rb)as file:

 

data=pickle.loads(file.read())

 

print(data)

 

 

使用模块json:

直接黏贴代码——(有细微区别,json直接存str,所以写入的文件是人为可以直接理解的)

JSON 所有语言通用,picklePython独有的,并且pickle不仅仅可以序列化基本数据类型(dict,list,tuple),它支持更多数据格式,包括函数!

写入——

import json

 

f=open("user_acc.txt","w")

 

info={

alben:123,

nichole:321

}

 

f.write(json.dumps(info))

 

 

读取——

import json

 

with open(user_acc.txt,r) as file:

data=json.loads(file.read())

 

print(data)

 

序列化