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. Python习题(第一课)

    想了想其他的太简单了,还是不放了,剩三题吧. 一.完美立方 编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3= b^3 + c^3 + d^3,其中 ...

  2. 外网访问本地服务器下的web应用

    让本地服务器可以在外网访问的方式有很多,介绍其中一种: 由于本人是在自己电脑上装了一个虚拟机, 测试环境为:虚拟机作为服务器,服务器中装了一个禅道,虚拟机IP192.168.2.221,本人通过tpl ...

  3. 深入解析OpenCart的代理类proxy

    1.什么是代理类 代理类指的是连接远程对象或不可见对象的接口,通常被客户端调用来连接真实的服务对象.更准确的定义参见维基百科 2.代理的作用 作为一个包装类,提供额外的功能 延迟加载 在本文讲到的op ...

  4. OAuth2.0学习(1-10)新浪开放平台微博认证-手机应用授权和refresh_token刷新access_token

    1.当你是使用微博官方移动SDK的移动应用时,授权返回access_token的同时,还会多返回一个refresh_token: JSON 1 2 3 4 5 6 {     "access ...

  5. python多进程--------linux系统中python的os.fork()方法

    linux下python 创建子进程的原理: os.fork()方法 的原理 为了实现并发.多任务,我们可以在主程序种开启一个进程或者线程.在类unix操作系统当中(非windows),可以用pyth ...

  6. 项目实战15—企业级堡垒机 jumpserver

    本文收录在Linux运维企业架构实战系列 环境准备 系统:CentOS 7 IP:192.168.10.101 关闭selinux 和防火墙 # CentOS $ setenforce # 可以设置配 ...

  7. Codeforces Round #426 (Div. 2)

    http://codeforces.com/contest/834 A. The Useless Toy 题意: <,>,^,v这4个箭头符号,每一个都可以通过其他及其本身逆时针或者顺时针 ...

  8. SpringMVC(十一):SpringMVC 处理输出模型数据之SessionAttributes

    Spring MVC提供了以下几种途径输出模型数据:1)ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据:2)Map及Model:处理方法入参 ...

  9. python操作mysql增删查改

    # coding=utf-8 ''' python操作mysql,需安装MySQLdb驱动 安装MySQLdb,请访问 http://sourceforge.net/projects/mysql-py ...

  10. nginx 官方文档翻译

    nginx(发音为"engine x")是一个由俄罗斯软件工程师Igor Sysoev编写的免费开源Web服务器.自2004年公开发布以来,nginx专注于高性能,高并发性和低内存 ...