美文网首页学点儿Python
python序列化与反序列化——json 、pickle

python序列化与反序列化——json 、pickle

作者: 再忙一点儿 | 来源:发表于2018-07-19 15:07 被阅读16次
我家的海

一、定义

序列化是指将对象从内存中取出来写入存储区,如txt文件中,反序列则相反。

二、 应用场景

跨平台数据传输;
保留上一次运行程序时对对象的修改
三、 模块和函数

  1. json

dumps()、dump()(序列化)

loads()、load() (反序列化)

  1. pickle

dumps()、dump()(序列化)

loads()、load ()(反序列化)

四、 应用案例

  1. pickle
import pickle

info = {"lyrics": "GeCi",
        "song": "GeQu",
        "time": 89}

with open("pickling.txt","wb") as f:  #序列化
       f.write(pickle.dumps(info))

with open("pickling.txt", "rb") as f:  #反序列化
        print(pickle.load(f))

上述代码首先将字典info转化为str类型的对象,然后写入txt文件中,其中,第8行可以替换为:

pickle.dump(info,f)

二者实现的效果是一样的,只不过dums直接将对象序列化后写入txt文件中。写入文件的结果是一堆看不懂的东西,如下所示:


这不是乱码

但是这并没有出错,不信,最后用load()函数将其反序列化后在控制台输出结果为:


反序列化
同样地,loads()函数可以替换load函数。如下:
 1 print(pickle.loads(f.read()))
  1. json

pickle是python独有的,而json可以实现不同编程语言的数据转换和传输。不同编程语言进行数据传输就需要将自身数据类型转换为一个共同的标准类型,json就是其中一种。json数据类型和python数据类型的对应关系如下所示:


对应关系.png

json的用法与pickle大致相同,不再赘述,但要注意在读写文件时json的读写模式不是“wb”和“rb”,而是“w”和“r”。

相关文章

  • Python 入门之 内置模块 -- 序列化模块(json模块、

    Python 入门之 内置模块 -- 序列化模块(json模块、pickle模块) 1、序列化 Python中这种...

  • 序列化和反序列细节处理

    python 中pickle 和 json 都是序列化和反序列化的模块。 关于序列化和反序列化 序列化和反序列化[...

  • python模块 | pickle:python对象序列化

    一 什么是pickle pickle实现了用于python对象结构的序列化和去序列化的协议; 会把python转成...

  • day21-常用模块(1)

    一、json和pickle模块 1、什么是序列化与反序列化 内存中某一类的数据---------------》特殊...

  • 2018-02-07

    python pickle模块:python变量及对象的序列化 1、pickle.dump 将python变量...

  • Python pickle的使用

    pickle简介 pickle模块是对Python对象结构进行二进制序列化和反序列化的协议实现,就是把Python...

  • 模块 一

    json与pickle序列化模块 time与datetime时间模块 random随机模块 hashlib 校验模...

  • Pickle 小结

    何为序列化 pickle可以序列(serializing)和反序列化(deserializing)python中的...

  • Python序列化pickle标准库

    听过Python序列化pickle标准库吗? 序列化 序列化 (Serialization)是将对象的状态信息转换...

  • 序列化

    在 Python 中 pickle 模块实现对数据的序列化和反序列化。pickle 支持任何数据类型,包括内置数据...

网友评论

    本文标题:python序列化与反序列化——json 、pickle

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