python第十八天,,学习内容:json


学习内容:

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,pickle2 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     pass3 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‘]=name13 d[‘age‘]=age14 d[‘func‘]=func_115 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‘]#提取出对应的数据age10 func_1=f[‘func‘]#提取出对应的数据func_111 func_1(name,age)#提取出对应的数据

python第十八天

评论关闭