美文网首页Python小哥哥
Python内存数据序列化到硬盘上哪家强

Python内存数据序列化到硬盘上哪家强

作者: 我爱学python | 来源:发表于2019-06-06 15:36 被阅读56次

1. 闲扯一下:文件

磁盘上的数据,我们一般称为 “文件” ,一般不同的文件都有各自的后缀名,比如 .txt .docx .xlsx .jpg .mp3 .avi 。这些不同类型的文件一般分为两大类:

文本文件: 用记事本打开看到的是英文、发文、中文等字符;

二进制文件: 用记事本打开看到的可能就是一堆乱码;

平日里,大家接触到的更多的是二进制文件,比如word文档,图片,视频,音频等。为了保存和读取这些不同文件,各自都规定了各自的文件格式,这些格式是各自存储的规范。同时为了让保存的文件更小便于传输(比如,视频通过网络传输),各自还通过一些算法对文件数据进行压缩,尤其是图片、视频和音频都各自有很多压缩算法,比如图片的jpg,音频的mp3,视频的mkv这些即代表了相应的文件格式,还代表了其背后的压缩算法。这些多媒体数据的压缩算法的原则是,在保证媒体质量的前提下尽量使得数据存储量小。

除了文件本身的一些压缩算法,我们还经常使用一些通用的压缩软件对文件进行打包和压缩,比如zip,WinRAR等。

2. 回到原题:Python序列化

我们使用python时,经常用到的数据就是int,float,string,list, dict,tuple这些内置的数据类型和结构。写程序时,我们很可能希望把这些基本数据存储到硬盘,即保存存储结果。这个过程,我们称之为“序列化”

Python里面常用的序列化工具有:

json

pickle

marshal

cPickle是pickle的C语言实现,速度更快,但Python3里面的pickle就是C语言实现的,因此不再包含cPickle模块。

json在web中使用更为广泛,是各种web API的首选数据格式。

以上三种工具,哪一个更快呢?

以上代码的测试过程是,对一个有80个key的字典进行序列化和反序列化操作,每个模块各循环10000次,统计各自的耗时。用Python3.6跑出的结果如下:

相关文章

  • Python内存数据序列化到硬盘上哪家强

    1. 闲扯一下:文件 磁盘上的数据,我们一般称为“文件”,一般不同的文件都有各自的后缀名,比如 .txt .doc...

  • Python的序列化与反序列化(pickle)

    序列化定义:将内存中的数据写入磁盘或者传输到网络中。 反序列化:将本地数据或者网络数据写入内存中。 Python ...

  • Tomcat 之 Session的活化和钝化 源码分析

    概要 Session活化:从硬盘上读取序列化的session到内存中Session钝化:把内存中的session序...

  • Java 序列化

    1. Java 原生序列化 序列化:把内存中数据写入文件中 反序列化:从文件中读取数据到内存中 使用流传输对象的过...

  • Python中的pickle和json模块

    dumps => 卸出,从内存中导出,把数据从内存中变成可存储或可传输的,序列化 => 将Python数据转换为...

  • activity传值,为什么在B页面修改了传递的值,却不会影响到

    因为我们传递的引用类型,需要从内存序列化到硬盘上,取值的时候,是从硬盘上反序列化重新创建的一个新的对象,可以理解为...

  • python-序列化-json-pickle-shelve

    把内存数据,转成字符,叫序列化把字符转成内存数据叫反序列化内存数据存到硬盘时需要转成字符json.dumps() ...

  • R语言vs Python

    1R语言vs Python:数据分析哪家强?http://www.sohu.com/a/117650272_481...

  • spark调优

    数据序列化 内存调整 内存管理概述 确定内存消耗 调整数据结构 序列化RDD存储 垃圾收集调整 其他考虑因素 并行...

  • json(pickle)

    序列化:将变量从内存中变为可存储或传输的过程;反序列化:把序列化的内容重新读到内存; pickle python ...

网友评论

    本文标题:Python内存数据序列化到硬盘上哪家强

    本文链接:https://www.haomeiwen.com/subject/uykuxctx.html