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、loadpickle模块提供了四个功能: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.‘

[112233]

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文件是需要使用二进制。

时间: 2024-12-24 07:07:43

python shelve模块的相关文章

python shelve 模块

一.简介 在python3中我们使用json或者pickle持久化数据, 能dump多次,但只能load一次,因为先前的数据已经被后面dump的数据覆盖掉了. 如果我们想要实现dump和load多次,可以使用shelve模块. shelve模块可以持久化所有pickle所支持的数据类型. 代码: #持久化数据 import shelve import datetime # info = {'name': 'bigberg', 'age': 22} # name = ['Apoll', 'Zous

python开发模块基础:序列化模块json,pickle,shelve

一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来.但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中.你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢?没错序列化的过程就是从dic 变成str(dic)的

Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块

5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 5.1 使用sys.argv进行登录判断,跳过 i/o阻塞 #使用sys.argv进行登录判断,跳过 i/o阻塞 import s

python序列化: json &amp; pickle &amp; shelve 模块

一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换Json模块提供了四个功能:dumps.dump.loads.loadpickle模块提供了四个功能:dumps.dump.loads.load json模块:下面通过一些示例来学习:首先我们来看json的dumps和loads方法 s1={"k1":"v1"}

python的shelve模块

shelve shelve是一额简单的数据存储方案,他只有一个函数就是open(),这个函数接收一个参数就是文件名,并且文件名必须是.bat类型的.然后返回一个shelf对象,你可以用他来存储东西,就可以简单的把他当作一个字典,当你存储完毕的时候,就调用close函数来关闭 这个有一个潜在的小问题,如下: import shelve list = [1, 2, 3] she = shelve.open('test.dat') she['d'] = list she['d'].append('f'

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

python之shelve模块

1.shevle简介 利用 shelve 模块, 你可以将 Python 程序中的变量保存到二进制的 shelf 文件中.这样, 程序就可以从硬盘中恢复变量的数据. shelve 模块让你在程序中添加"保存"和"打开" 功能.例如, 如果运行一个程序,并输入了一些配置设置,就可以将这些设置保存到一个 shelf 文件,然后让程序下一次运行时加载它们. 2.方法 2.1.写入数据 import shelve import datetime d = shelve.ope

python常用模块——json、pickle、shelve

常用模块 json pickle shelve json模块和pickle模块很像,方法都一样:json在js.python.java等等中通用,而pickle是python里的. 一. json模块 json模块只需要掌握 dumps和loads即可:另外两个用到时再补充吧: 1. dump() 格式如下: dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=N

python之shelve模块详解2(转)

阅读目录 一.定义 二.用途 三.用法 四.关联模块Anydbm 五.方法 六.writeback参数 回到顶部 一.定义 Shelve是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的. 回到顶部 二.用途 可以作为一个简单的数据存储方案. 回到顶部 三.用法 使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作.并且将内存存储到磁盘中,最后调用close函数变回将数据写入文件. 回到顶部 四.关联模块Anydbm 相同点