1.shelve对pickle进行封装,所以shelve也只能在python里使用。

shelve可以进行多次dump而且顺序不会乱。

import shelvef = shelve.open('shelve_test')    #打开文件方式和json,pickle不同。names = ['li','xiao','xiao','ali','lucas']
dicts = {'lucy':1,'liming':2,'casio':3}f["first"] = names          #把文件当成一个字典,括号里的是字典的key,括号外面的数据类型是字典的value。
f["second"] = dictsf.close()

下面在终端对文件进行修改,删除,增加等操作。

>>> import shelve
>>> f = shelve.open("shelve_test")
>>> list(f.items())
[('first', ['li', 'xiao', 'xiao', 'ali', 'lucas']), ('second', {'lucy': 1, 'liming': 2, 'casio': 3}), ('source', [1, 2, 5, 6, 7, 8, 9, 0])]
>>> f["source"]
[1, 2, 5, 6, 7, 8, 9, 0]                  #注意:不能直接对value里面的值进行修改,只能给key进行重新赋值来达到修改。
>>> f.get("source")
[1, 2, 5, 6, 7, 8, 9, 0]
>>> f["source"] = [1,2,3,4,6,8,9]
>>> list(f.items())
[('first', ['li', 'xiao', 'xiao', 'ali', 'lucas']), ('second', {'lucy': 1, 'liming': 2, 'casio': 3}), ('source', [1, 2, 3, 4, 6, 8, 9])]
>>> del f["source"]
>>> list(f.items())
[('first', ['li', 'xiao', 'xiao', 'ali', 'lucas']), ('second', {'lucy': 1, 'liming': 2, 'casio': 3})]
>>> f["add_1"] = [1,1,1,1,12,3,4]
>>> list(f.items())
[('first', ['li', 'xiao', 'xiao', 'ali', 'lucas']), ('second', {'lucy': 1, 'liming': 2, 'casio': 3}), ('add_1', [1, 1, 1, 1, 12, 3, 4])]

  

shelve对比json,pickle的优缺点

shelve可以多次dump,并且能够通过key值返回需要的数据类型,很方便,不会乱。

shelve比pickle常用,但是json可以跨语言,shelve不可以。  

转载于:https://www.cnblogs.com/Roc-Atlantis/p/8863062.html

序列化shelve模块相关推荐

  1. 序列化模块--json模块--pickle模块-shelve模块

    什么叫序列化? 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传播到远程,因为硬盘或网络传输时只能接受bytes 例: 把内存数据 转成字符 # data ={# 'roles ...

  2. python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  3. (十四)json、pickle与shelve模块

    任何语言,都有自己的数据类型,那么不同的语言怎么找到一个通用的标准? 比如,后端用Python写的,前端是js,那么后端如果传一个dic字典给前端,前端肯定不认. 所以就有了序列化这个概念. 什么是序 ...

  4. python shelve模块_python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  5. python 学习第四十七天shelve模块

    shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式. 1,序列化 import shelve f=shelve.open('she ...

  6. shelve模块简单用法

    shelve模块可用来存储字典文件,用法与字典类似 写数据: 1 import shelve 2 import datetime 3 4 d=shelve.open('shelve_test') 5 ...

  7. Python编程——shelve模块的使用详解(附实例)

    1. shelve模块的介绍 (1)shelve模块: shelve是一个简单的数据存储方案,类似key-value数据库,可以很方便的保存python对象,其内部是通过pickle协议来实现数据序列 ...

  8. python shelve模块_python之shelve模块

    shelve模块 python 专有的序列化模块 只针对文件,用来持久化任意的Python对象 感觉比pickle用起来更简单一些,它也是一个用来持久化Python对象的简单工具.当我们写程序的时候如 ...

  9. python shelve模块_Python中shelve模块

    Python中Shelve模块是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的,可以作为一个简单的数据存储方案.使用时,只需要使用open函数获取一个shelf对象, ...

最新文章

  1. js调用ios的方法
  2. mysql hourminute_mysql日期函数(时间函数)
  3. Oracle-数据泵expdp/impdp实操
  4. poi向word插入图片_如何使用word裁剪图片图形?如何使用word修整图片?
  5. 在穷学生面前 “ 摆弄骚姿 ”,最美90后支教女老师翻车~!这TM就是所谓的 “ 支教媛 ” ~?...
  6. java中wmi的username_有没有一种方法可以在Java中使用WMI类
  7. 识别浏览器的JavaScript引擎的方法
  8. Android——手机系统重装的备忘笔记
  9. BLOB存储图片文件二进制数据是非对错
  10. 分享OUTLOOK的定时发送功能
  11. 抓linux肉鸡教程视频,抓肉鸡的教程和软件免费分享(2018一天抓1000只电脑肉鸡视频)...
  12. Win7安装RNDIS驱动
  13. win7系统之家特别版下载
  14. leetcode69 x的平方根
  15. FME官方软件快速下载
  16. mac 设置锁屏快捷键
  17. 海马苹果助手ipad版_苹果IPA文件签名,软件掉签问题,自己也能轻松解决
  18. 色彩三原色,RGB,CMYK
  19. springboot-mybatis集成 使用逆向工程
  20. 《信号完整性分析》的读书笔记和总结

热门文章

  1. Java(Android)线程池
  2. IE的documentMode属性
  3. 可添加至收藏夹并在浏览器地址栏运行的JS代码
  4. SocketErrorCode:10022
  5. 大数据面临的挑战:当大数据遭遇云计算
  6. 绝非玩笑!人工智能或开创黑客新时代
  7. I2C总线之(一)---概述
  8. CPU和GPU擅长和不擅长的方面
  9. HALCON示例程序measure_circles.hdev测量圆的半径
  10. 机器学习——支持向量机SVM之非线性模型(原问题转化为对偶问题)