标签:序列 用法 数据 write 持久化 不同的 info 方法 程序
学习内容:
json 模块,pickle模块,shelve模块
json 模块 序列化:
1 import json,pickle 2 3 info={ 4 ‘name‘:‘a‘, 5 ‘age‘:34, 6 ‘func‘:‘‘ 7 } 8 with open(‘text.txt‘,‘w‘) as f: 9 #f.write(json.dumps(‘test.txt‘))#新建一文件用于存入序列化的数据 10 f.write(json.dumps(info))#序列化
json 模块 反序列化(从另一个程序打开文件):
1 import json,pickle 2 with open(‘text.txt‘,‘r‘)as f: 3 4 fp=json.loads(f.read())#反序列化 5
#fp=json.load(f)# 效果与loads一样
6 print(‘\033[32;1m%s\033[0m‘%fp)
pickle模块 用法,方法与jsong 一样(不同的是,pickle可以存对象格式,如有函数可以存函数的对象属性):
1 def func1(): 2 print(‘1111111‘) 3 info2={ 4 ‘name‘:‘a‘, 5 ‘age‘:34, 6 ‘func‘:func1 7 8 } 9 with open(‘test‘,‘wb‘) as f2: 10 f2.write(pickle.dumps(info2))# ===pickle.dump(info2,f2) 效果一样
pickle模块 反序列化:
1 def func1(): 2 pass 3 4 with open(‘test‘,‘rb‘) as f2: 5 c=pickle.load(f2) 6 #c=pickle.loads(f2.read())#效果与loads一样 7 8 print(c)
shelve模块(相当于可以多次ldump,和load):
shelve采用key与vaule对应的字典方式,通过文件对数据进行持久化--可以持久化任何pickle可支持的python数据格式:
1 import shelve 2 3 def func_1(name,age):#定义一个函数 4 print(name,age) 5 6 name=[‘a‘,‘b‘,‘c‘,‘d‘]#定义一个列表 7 age=[1,2,3,4] 8 9 d=shelve.open(‘test_3.txt‘)#用shelve来打开文件 10 11 #将各个对象存入文件 12 d[‘name‘]=name 13 d[‘age‘]=age 14 d[‘func‘]=func_1 15 d.close()
shelve,反序列化:
1 import shelve 2 def func_1(name,age):#定义一个函数与shelve存入的函数名相同 3 print(age) 4 f=shelve.open(‘test_3.txt‘)#打开之前存入数据的文件 5 6 name=f[‘name‘]#提取出对应的数据name 7 print(name) 8 9 age=f[‘age‘]#提取出对应的数据age 10 func_1=f[‘func‘]#提取出对应的数据func_1 11 func_1(name,age)#提取出对应的数据
标签:序列 用法 数据 write 持久化 不同的 info 方法 程序
原文地址:http://www.cnblogs.com/uge3/p/6882291.html