标签:bsp 数字 不能 port open 文件中 eof 需要 强制
序列化
将字典\列表等数据类型转换成字符串的过程叫做序列化
序列化的目的
1.以某种存储形式使自定义对象持久化
2.讲对象从一个地方传递到另一个地方
3.使程序更具维护性
json模块提供了四个功能:dumps\dump\loads\load
json是一种所有的语言都可以识别的数据结构
json格式的key必须是字符串数据类型(字典)
json格式中的字符串只能是双引号
如果是数字为key,那么dump之后会强行转换成字符串数据类型(字典)
json中对元祖做value的字典会把元祖强制转换成列表
json不支持元祖做key 会报错
dumps 序列化:将一个字典转换成一个字典 也可以处理嵌套的数据类型
loads 反序列化:将一个字符串格式的字典转换成字典 也可以处理嵌套的数据类型
dump 方法接收一个文件句柄,直接将字典转成json字符串写入文件,能多次dump数据到文件里,但是不能load出来了,想多个数据进文件用dumps
load 方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回
set不能进行dump、load操作
import pickle
dump的结果是bytes,dump用的f 文件句柄需要以wb的形式打开,load所用的f是rb模式
支持几乎所有对象的序列化
对于对象的序列化需要这个对象的类在内存中
对于多次dump/load的操作做了良好的处理
pickle模块来存储每个学员的对象
with open(‘pickle_demo‘,‘rb‘) as f:
while True:
try:
print(pickle.load(f))
except EOFError:
break
import shelve 专门处理文件
标签:bsp 数字 不能 port open 文件中 eof 需要 强制
原文地址:https://www.cnblogs.com/wjs521/p/9451952.html