码迷,mamicode.com
首页 > 编程语言 > 详细

python第十八天

时间:2017-05-20 16:35:35      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:序列   用法   数据   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)#提取出对应的数据

 

python第十八天

标签:序列   用法   数据   write   持久化   不同的   info   方法   程序   

原文地址:http://www.cnblogs.com/uge3/p/6882291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!