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. nyoj 概率计算

    概率计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题,则对手 ...

  2. 深入理解PHP之require/include顺序

    深入理解PHP之require/include顺序 作者: Laruence(   ) 本文地址: http://www.laruence.com/2010/05/04/1450.html 转载请注明 ...

  3. php_类的定义

    此文章为原创见解,例子各方面也是东拼西凑.如果有错请留言.谢谢 在面向对象的思维中提出了两个概念,类和对象. 类是对某一类实物的抽象描述,而对象用于表示现实中该类事物的个体, 例子:老虎是父类,东北虎 ...

  4. php的打印sql语句的方法

    echo M()->_sql(); 这样就可以调试当前生成的sql语句: //获取指定天的开始时间和结束时间 $datez="2016-05-12"; $t = strtot ...

  5. 【漏洞复现】PHPCMS wap模块 SQL注入(附EXP)

    漏洞影响版本:v9.5.8.v9.6.0 Step1: 访问:http://www.xxx.com/index.php?m=wap&a=index&siteid=1, 获取返回的coo ...

  6. Spring中报"Could not resolve placeholder"的解决方案

    除去properites文件路径错误.拼写错误外,出现"Could not resolve placeholder"很有可能是使用了多个PropertyPlaceholderCon ...

  7. 2.sublime设置本地远程代码同步

    1.打开编辑器输入框(Ctrl+Shift+P),并执行 2.回车后输入sftp 3.回车个后,右键项目 4.修改配置信息,保存

  8. SpringBoot应用的启动方式

    一:IDE 运行Application这个类的main方法 二:在SpringBoot的应用的根目录下运行mvn spring-boot:run 三:使用mvn install 生成jar后运行 先到 ...

  9. 浅谈Web网站的架构演变过程

    前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶 ...

  10. SQL Server 利用触发器对多表视图进行更新

    其步骤就是:利用update操作触发器产生的2个虚拟表[inserted]用来存储修改的数据信息和[deleted]表,然后将对应的数据更新到对应数据表中的字段信息中: 1.首先创建3个表: a.信息 ...