持久化

一、对象持久化
1、扁平文件
(1)文本文件
2、pickle
(1)序列化为字符串
pickle.dumps(obj):将对象序列为字符串
pickle.loads(obj):从字符串反序列化对象
例如:
import pickle
person = {‘name’:‘Tom’,‘age’:20}
s = pickle.dumps(person) #将person序列化变成一个字符串
print(s)
p =pickle.loads(s) #通过字符串载入对象s
print§
(2)序列化对象到文件
pickle.dump(obj,file)
pickle.load(file)
例如:
import pickle
person = {‘name’:‘Tom’,‘age’:20}
pickle.dump(person,open(‘pickle_db’,‘wb’)) #将person以二进制的方式写入pickle_db文件里面
p = pickle.load(open(‘pickle_db’,‘rb’)) #以二进制读取pickle_db文件还原序列化对象
print§
3、shelve
(1)创建
shelve.open(‘dbfile’)
(2)赋值
db[‘key’] = obj
(3)检查长度
len(db)
(4)数据的删除
del db[‘key’]
应用一:
import shelve
scores = [99,88,77]
student ={‘name’:‘Mike’,‘age’:20}
db = shelve.open(‘shelve_student’) #创建一个shelve_student的数据库,不用写是文本还是二进制,直接就是以二进制的方式,不用指定读写
db[‘s’] = student #将student字典表赋给db里面的键值s
db[‘score’] = scores #将scores赋给db里面的score
#db数据库的长度
print(len(db)) #返回值为2
#db数据库的读取
temp_student = db[‘s’]
print(temp_student)
#db数据库的数据删除
del db[‘score’]
print(len(db))
应用二:
import shelve
class Student:
def init(self,name,age):
self.name =name
self.age = age
def str(self):
return self.name
#类的保存
def write_shelve():
s = Student(‘Tom’, 20)
db = shelve.open(‘shelve_student_db’)
db[‘s’] = s
db.close()
#类的读取
def read_shelve():
db =shelve.open(‘shelve_student_db’)
st = db[‘s’]
print(st)
print(st.name)
print(st.age)
db.close()
if name == ‘main’:
read_shelve()
4、数据库
5、ORM

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值