序列化

模块  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)
原文地址:https://www.cnblogs.com/alben-cisco/p/6921863.html