首页 > 代码库 > python shelve模块
python shelve模块
import shelve import datetime d = shelve.open(‘shelve_test‘) ‘‘‘写入文件‘‘‘ info = {‘age‘: 22, ‘job‘: ‘IT‘} name = [‘Jack‘, ‘Rose‘] d[‘name‘] = name d[‘info‘] = info d[‘data‘] = datetime.datetime.now() d.close() ‘‘‘读取文件‘‘‘ d = shelve.open(‘shelve_test‘) print(d.get(‘name‘)) print(d.get(‘info‘)) print(d.get(‘date‘)) d.close()
可以看出shelve模块和json对文件的操作是很像的,但是保存文件时有三个文件,如图:
具体不用管这三个文件的格式,正常的读写就行了。
json,用于字符串 和 python数据类型间进行转换
pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
json模块:
下面通过一些示例来学习:
首先我们来看json的dumps和loads方法
1
2
3
4
5
6
|
s1 = { "k1" : "v1" } st = json.dumps(s1) print (st, type (st)) s = ‘{"k1":"v1"}‘ dic = json.loads(s) print (dic, type (dic)) |
输出结果为:
1
2
|
{ "k1" : "v1" } < class ‘str‘ > { ‘k1‘ : ‘v1‘ } < class ‘dict‘ > |
可以看出json的dumps方法处理数据时会将数据转换为字符类型,loads则会重新还原它的类型。
再来看json的dump和load方法,通过示例来了解:
1
2
3
4
|
li = [ 11 , 22 , 33 ] li = json.dump(li, open ( ‘db‘ , ‘w‘ )) li = json.load( open ( ‘db‘ , ‘r‘ )) print (li, type (li)) |
Json模块dumps、loads、load、dump的区别:
load,dump可加载外部文件,处理文件的数据,dumps,loads主要处理内存中的数据
pickle模块:
下面我们来看pickle的dumps和loads方法,通过示例我们来了解:
1
2
3
4
5
6
|
import pickle i = [ 11 , 22 , 33 ] r = pickle.dumps(li) print (r) result = pickle.loads(r) print (result) |
结果为:
1
2
|
b ‘\x80\x03]q\x00(K\x0bK\x16K!e.‘ [ 11 , 22 , 33 ] |
pickle的dupms方法会将数据存为pickle特有的数据类型
再看pickle的dump和load方法,通过示例我们来了解:
1
2
3
4
5
|
import pickle i = [ 11 , 22 , 33 ] pickle.dump(i, open ( ‘db‘ , ‘wb‘ )) result = pickle.load( open ( ‘db‘ , ‘rb‘ )) print (result) |
需要注意的是dump文件或者load文件是需要使用二进制。
python shelve模块
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。