json & pickle & shelve

1. json的序列化与反序列化

json的使用需要导入该模块,一般使用import json即可。

  1. json的序列化

    方法1:json.dumps(obj)
    例如:f = open('file.txt','w')
    json.dumps(f.write([1,2,3,]))
    f.close()
    #使用该方法把内存数据以字符串的格式存储到文件中。
    方法2:json.dump(obj,file)
    例如:f = open('file.txt','w')
    json.dump([1,2,3,],f)
    f.close()
    #使用该方法不用打开调用文件的写入函数即可直接把数据写入到文件中。
  2. json的反序列化

    方法1:json.loads(obj)
    例如:f = open('file.txt','r')
    print(json.loads(f.read()))
    f.close()
    #使用该方法把文件中的数据读取到内存中,并转化为内存中的数据类型。
    方法2:json.load(file)
    例如:f = open('file.txt','r')
    print(json.load(f))
    f.close()
    #该方法不用调用文件的读取函数即可直接把数据读取到内存中。

2. pickle的序列化与反序列化

pickle的使用需要导入该模块,一般使用import pickle即可。

  1. pickle的序列化

    方法1:pickle.dumps(obj)
    例如:f = open('file.txt','wb')
    json.dumps(f.write([1,2,3,]))
    f.close()
    #使用该方法把内存数据以二进制的格式存储到文件中
    方法2:pickle.dump(obj,file)
    例如:f = open('file.txt','wb')
    json.dump([1,2,3,],f)
    f.close()
    #使用该方法不用打开调用文件的写入函数即可直接把数据写入到文件中
  2. pickle的反序列化

    方法1:pickle.loads(obj)
    例如:f = open('file.txt','rb')
    print(json.loads(f.read()))
    f.close()
    #使用该方法把文件中的数据读取到内存中,并转化为内存中的数据类型。
    方法2:pickle.load(file)
    例如:f = open('file.txt','rb')
    print(json.load(f))
    f.close()
    #该方法不用调用文件的读取函数即可直接把数据读取到内存中。

3. json与pickle的对比:

1. 相同点

  1. 两者写入和读取数据的方法一样。
  2. 两者对于同一个文件写入和读取时的数据都是一个整体。
  3. 虽然写入时可以写入多次,但读取只能读取一次,因此一般同一个文件只建议写入一次。

2. 不同点

  1. json在写入和读取数据时,是以字符串类型进行操作。
  2. pickle在写入和读取数据时,则是以二进制的格式进行操作。
  3. json只支持简单的数据类型,如字符串、列表、字典、元祖、集合等。
  4. pickle支持简单的数据类型,也支持复杂的数据类型,如函数、类等。
  5. json可以跨语言进行转换。
  6. pickle只能在Python中使用。

3. shelve

该模块的方法和字典是一样的,利用方法把数据以键值对的方式进行存储到文件中,读取时同样使用键值对进行获取。

例如:f = shelve.open('file')
f[key] = value
f.close()
#利用该模块打开文件时,不需要指定打开的模式。

Python中模块json与pickle的功能介绍的更多相关文章

  1. Python中模块之time&datetime的功能介绍

    time&datetime的功能介绍 1. time模块 1. 时间的分类 1. 时间戳:以秒为单位的整数 2. 时间字符格式化:常见的年月日时分秒 3. 时间元祖格式:9大元素,每个元素对应 ...

  2. python序列化模块json和pickle

    序列化相关 1. json 应用场景: json模块主要用于处理json格式的数据,可以将json格式的数据转化为python的字典,便于python处理,同时也可以将python的字典或列表等对象转 ...

  3. python中的json和pickle

    author:headsen chen date::2018-04-10  09:56:54 json模块和pickle模块: 这是用于序列化的两个模块: 概念介绍:json和pickle模块是将数据 ...

  4. Python中模块之os的功能介绍

    Python中模块之os的功能介绍 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module ...

  5. python中的 json 模块使用

    (1)python 中生成 json 字符串: import json data = dict(ret=0, msg="Welcome, Login success!") json ...

  6. Python常用模块--json

    官方解释: JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.人类很容易读写.机器很容易解析和生成.它基于 JavaScript编程语言的一部分, 标准ECM ...

  7. 查看python中模块的所有方法

    查看python中模块的所有方法     安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...

  8. 在 Python 中使用 JSON

    在 Python 中使用 JSON 本教程将会教我们如何使用 Python 编程语言编码和解码 JSON.让我们先来准备环境以便针对 JSON 进行 Python 编程. 环境 在我们使用 Pytho ...

  9. python中的json的基本使用方法

    在python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口, #!/usr/bin/env ...

随机推荐

  1. 根据HTML5的新方法 drag & drop 方法实现表格拖拽实例

    上一次学习了html5的drag和drop方法,传送门  就自己写了个例子加深自己对drag和drop的理解.不过一开始不是很简单,遇到了不少问题.还好网络万能的,什么都能查到,总算完成了. 说明和详 ...

  2. python的模块和包

    ==模块== python语言的组织结构层次: 包->模块->代码文件->类->函数->代码块 什么是模块呢 可以把模块理解为一个代码文件的封装,这是比类更高一级的封装层 ...

  3. Connect Appium Server Fail.A new session could not be created

    1.由于安卓测试机性能低下,并不能支持测试工作,想安装一个模拟器帮助测试,然后发现群里有朋友发了一个夜神模拟器..下载..安装..美滋滋的准备运行脚本.What..居然报错了..orz..然后百度查找 ...

  4. 扩展Microsoft Graph数据结构 - 架构扩展

    前言 此前我有一篇 文章 讲解了Microsoft Graph的一种数据扩展技术-- 开发扩展(Open Extensions),它可以实现在支持的对象(例如用户,组等)上面附加任意的数据.但开放扩展 ...

  5. js回顾(DOM中标签的CRUD,表格等)

    01-DOM中的创建和添加标签 02-删除替换克隆标签 03-全选全不选反选 04-新闻字体 05-表格增删 06-动态生成表格 07-表格隔行变色 08-左到右右到左(将左边的标签移动到右边) 09 ...

  6. api-gateway实践(14)前端签名密钥和后端签名密钥

    1.前端签名密钥 1.1.缓存管理初始:engine初始的时候,从redis拉取全部前端绑定关系到engine缓存.新增/绑定:绑定签名密钥和服务实例,同时缓存该关系到redis,同时缓存到engin ...

  7. Spring MVC拦截器的配置

    最近在用SpringMVC,想用它的拦截器,但是配置了几次都不成功了,最后翻阅了不少文章终于成功了,遂记录于此,以方便他人. 首先引入命名空间: xmlns:mvc="http://www. ...

  8. C#日志文件

    写日志文件是一个很常用的功能,以前都是别人写好的,直接调用的,近期写了一个小工具,因为比较小,所以懒得引用dll文件了,直接上网找了一个,很方便,现在记录下 public class LogClass ...

  9. Modelsim的使用——复杂的仿真

    相对于简单的仿真,复杂的仿真是指由多个文件.甚至调用了IP核.使用tcl脚本进行的仿真.其实仿真步骤跟图形化的差不多,只不过每一步用脚本写好,然后再在软件里面run一下,主要过程就是: 1.准备好各种 ...

  10. python--socket粘包

    socket粘包 1 什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包,首先需要掌握一个socket收发消息的原理, 所谓粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少 ...