美文网首页
【Python】序列化与反序列化

【Python】序列化与反序列化

作者: 失语失芯不失梦 | 来源:发表于2019-04-17 21:29 被阅读0次

import json

简单直接来讲,序列化是指把python的数据对象转换为json格式的字符串(list、dict—> str);反序列化是指把json格式字符串转换为python数据对象(str—> list、dict)

序列化方法:json.dumps / json.dump 

对数据对象进行序列化:json.dumps

对数据对象进行序列化处理 输出结果

如果在序列化时,中文汉字被转换为unicode码,在dumps函数中添加参数ensure_ascii=False即可解决,以上可处理为:print(json.dumps(dict, ensure_ascii=False))

输出结果

对文件进行序列化:json.dump

分两步走:先序列化数据对象,然后再将序列化后的字符串写入文件中

对文件进行序列化 输出结果

反序列化方法:json.loads / json.load

对数据对象进行反序列化:json.loads

对数据对象进行反序列化处理 输出结果

注意:这里我遇到过两个错误

1)json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

最开始我是这么写的string,然后把大括号里面改成双引号就不会报这个错了。结果,报出了第二种错

2)  SyntaxError: invalid syntax:报这个错之后,我就试图把大括号外面的双引导改成单引号,结果就正常了

对文件进行反序列化:json.load

同样分两步走:先读取文件的字符串对象,然后反序列化成python数据对象

再把上一步中的文件内容反序列化回来 输出结果

对文件的序列化或者反序列化操作,一定要注意!!!dump/load方法里面一定要写open(),而不是写变量名!!!!!!就比如上图对文件反序列化的操作,我改成下图这样:

会报错:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我也不知道为什么,明明open('D:\\Daydayup\\2.txt', 'r')就是赋值给file的,不过就先这样记住吧

相关文章

  • python序列化与反序列化

    json序列化与反序列化 序列化:dumps()/dump(),将python中字典类型的对象序列化后,转化成js...

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

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

  • 使用json模块

    json模块是python内置的用于序列化的模块。 序列化和反序列化 序列化就是将python类型的数据结构转换为...

  • python 实现list和dict的可序列化方案

    python原生的list与dict并不支持序列化,想要实现序列化,必须借助设计;python提供魔法方法gets...

  • Java序列化与反序列化

    问题 Java序列化与反序列化是什么?为什么需要序列化与反序列化?有什么好处?如何实现Java序列化与反序列化? ...

  • 序列化和反序列化的概念

    1序列化:把对象转为字节序列的过程 为序列化; 2相反:字节---------->对象 为反序列化 3 序列化的场...

  • Pickle 反序列化漏洞

    序列化与反序列化基础 我们知道各大语言都有其序列化数据的方式,Python当然也有,官方库里提供了一个叫做pick...

  • Python序列化pickle标准库

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

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

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

  • DRF之序列化

    序列化 把Python中对象转换为json格式字符串 反序列化 把json格式转为为Python对象。 序列化两大...

网友评论

      本文标题:【Python】序列化与反序列化

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