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. excel2003和excel2007文件的创建和读取

    excel2003和excel2007文件的创建和读取在项目中用的很多,首先我们要了解excel的常用组件和基本操作步骤. 常用组件如下所示: HSSFWorkbook excel的文档对象 HSSF ...

  2. PHP环境手动搭建wamp-----Apache+MySQL+PHP

    首先下载分别下载Apache+MySQL+PHP. 然后分别解压到文件夹中. 1.安装Apache 1)检查80端口是否占用 说明:apache软件占用80软件,在计算机中一个端口只能被一个软件占用 ...

  3. JAVA_SE基础——32.this关键字调用本类的构造方法

    黑马程序员入学blog... 也算是学习笔记. 下面我们来看段代码: package day07; class Student{ int id; //身份证 String name; //名字 pub ...

  4. 逆向集录_00_不同程序OEP特征总结

    在分析/逆向 程序时,如果事先知道这类程序的一些特征,那将会是事半功倍的: 分析/逆向 程序,和写程序不同,比喻的话:写程序像在作案,分析/逆向 程序就像是在破案,对破案来讲,重在假想和推理: 特征1 ...

  5. java异常常见面试问题

    java异常常见面试问题 一.java异常的理解 异常主要是处理编译期不能捕获的错误.出现问题时能继续顺利执行下去,而不导致程序终止,确保程序的健壮性. 处理过程:产生异常状态时,如果当前的conte ...

  6. c 语言typedef 和 define的使用和区别

    #define是C的指令,用于为各种数据类型定义别名,与typedef 类似,但是有一下几点不同 1,typedef仅限于为类型定义符号名称,而#define不仅可以为类型定义符号名称,也能为数值定义 ...

  7. 电梯模拟C++

    1.问题描述与要求 模拟某校九层教学楼的电梯系统.该楼有一个自动电梯,能在每层停留,其中第一层是大楼的进出层,即是电梯的"本垒层",电梯"空闲"时,将来到该层候 ...

  8. python 类的进阶

    类的进阶 一 isinstance(obj,cls)和issubclass(sub,super) class Foo: def __init__(self,name): self.name = nam ...

  9. pandas笔记

    axis = 1表示按列的方向遍历 axis = 0表示按行的方向遍历 Usually axis=0 is said to be "column-wise" (and axis=1 ...

  10. if__name__ == '__main__'

    # a.py import b def x(): print('x') b.y #b.py import a def y(): print('y') a.x() #执行b.py引发异常 首先,执行b. ...