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. 利用java反射读写csv中的数据

      前一段有个需求需要将从数据库读取到的信息保存到csv文件中,在实现该需求的时候发现资料比较少,经过收集反射和csv相关资料,最终得到了如下程序.  1.在使用java反射读取csv文件数据时,先通 ...

  2. JAVA_SE基础——28.封装

    黑马程序员blog... 面向对象三大特征:1. 封装2. 继承3  多态. 今天我们先学习第一大特征,封装. 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处:     1. 将变 ...

  3. 移动端H5活动页优化方案

    背景 项目:移动端H5电商项目 痛点:慢!!! 初始方案:最基本的图片懒加载,静态资源放到cdn,predns等等已经都做了.但是还是慢,慢在哪? 显而易见的原因:由于前后端分离,所有的数据都由接口下 ...

  4. Centos7安装openvpn及客户端配置

    1.openvpn介绍 VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,使用OpenSSL加密库中的SSLv3/TLSv1协议函数库. 目前OpenVPN能在Sola ...

  5. Win10安装Ubuntu14.04.5双系统(显示器为DP接口)

    系统安装主要参考了这篇博文Win10+Ubuntu17.04双系统安装,不再重复. 重点说说DP接口的事,如果主机有VGA接口的话可以到此为止了,如果只有DP接口的话可以参考以下内容. 一.Ubunt ...

  6. restful架构风格设计准则(四)资源表示和资源访问

    读书笔记,原文链接:http://www.cnblogs.com/loveis715/p/4669091.html,感谢作者! 一.资源表示 1.资源表示:使用 单数 vs. 复数 如果一个URL所对 ...

  7. VirtualBox的共享文件夹功能的使用演示

    演示环境 虚拟机 Oracle VM VirtualBox 宿主机 Windows 客户机 Linux 以下图片演示中使用的Linux客户机为CentOS.对于Debian系统的客户机,主要在安装增强 ...

  8. spring mvc跨域(post)--filter方案

    import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Http ...

  9. cdoj 1092 韩爷的梦

    http://acm.uestc.edu.cn/#/problem/show/1092 题意:略 思路: 做的第一道字符串hash的题,真是菜啊,还是看了几篇题解才会做的.字符串hash感觉就是函数的 ...

  10. 学习React系列(三)——Refs和Dom

    一.适用于以下场景: 1.控制焦点,文本选择,或者媒体控制 2.触发必要的动画 3.整合第三方dom库 二.不要过度使用ref 如果想通过ref来改变state,那么换一种方式-变量提升可能会更好. ...