序列化和反序列化(json 和pickle)dumps 为序列化, json为反序列化
json 可以在不同语言中进行使用
下面先介绍一下json的适用方法
import json, pickle
t1 = {
'name':'alex',
'password':'',
'age' : ''
} t1 = json.dumps(t1) #进行序列化,把t1被转换成字符串
f = open('t1.txt', encoding='utf-8', mode='w') #utf-8的编码方式
f.write(t1) # 写入t1,这时候的t1的样子还是原来的样子
f.close()
f = open('t1.txt', encoding='utf-8', mode='r') #打开文件
t = f.read() #读取文件内容
print(json.loads(t)) #反序列化,重新转换为dict形式
pickle 只能在python中使用
json 和 pickle 的语法相同 ,pickle 可以用来传递函数
下面以pickle为例
序列化.py
def say():
print('hello') lis = {
'name':'alex',
'password':'',
'func': say #传入函数的内存地址
}
f = open('t2.txt', mode='wb') #以二进制的方式打开
lis = pickle.dumps(lis) #进行序列化,转换后的格式是二进制
f.write(lis) #写入文件
f.close() f = open('t2.txt', mode='rb')
t = f.read()
data = pickle.loads(t) #反序列化
data['func']() #验证函数是否还是可执行
对于json.dumps 和 json.loads 而言 最好是每次转换只出现一次
序列化和反序列化(json 和pickle)dumps 为序列化, json为反序列化的更多相关文章
- json 与pickle模块(序列化与反序列化))
一.什么是序列化(pickling): 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化. 序列化可以持久保存状态, 不会根据计算机断电或者重启程序,而使得之前的数据状态丢失.可以在下次程 ...
- json,pickle,shelve序列化
import json a = [{"a":"b"}] jd = json.dumps(a) #序列化,就是对象通过内存能够存储和传输的过程 with open ...
- python - 关于json和pickle两个序列化模块的区别
传送门 https://stackoverflow.com/a/20980488/5955399 区别 json:用于字符串(unicode text)和python基本数据类型间进行转换.优点:跨语 ...
- json和pickle序列化模块
一.json序列化模块 1.序列化:将内存数据转成字符串加以保存. 2.反序列化:将字符串转成内存数据加以读取. data = { '北京':{ '五道口':{ 'sohu':'引擎', } } } ...
- 20,序列化模块 json,pickle,shelve
序列化模块 什么叫序列化? 将原本的字典,列表等内容转换成一个字符串的过程叫做序列化. 序列化的目的? 数据结构 通过序列化 转成 str. str 通过反序列化 转化成数据结构. json: jso ...
- 2019-7-18 collections,time,random,os,sys,序列化模块(json和pickle)应用
一.collections模块 1.具名元组:namedtuple(生成可以使用名字来访问元素的tuple) 表示坐标点x为1 y为2的坐标 注意:第二个参数可以传可迭代对象,也可以传字符串,但是字 ...
- day6_python之pickle、shelve序列化和反序列化
pickle.shelve,python私有,支持所有python数据类型 一.pickle dic={'name':'egon','age':18} print(pickle.dumps(dic)) ...
- 20201214-1 Json与pickle数据序列化
1-1 文件处理时,只能存字符串或者二进制 info = { 'name':'alex', 'age':22 } f = open("test.text", "w&quo ...
- json和pickle
Pickle序列化 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 python的pic ...
- Python档案袋( Json、pickle、加密与解密)
Json是各程序通用的数据格式:pickle是Python特有的,可以存储很多Python特有的数据,如函数地址等 Json的简单使用: import json jsondata={ "us ...
随机推荐
- WPF 中对启动参数的处理
/// <summary> /// Interaction logic for App.xaml /// </summary> public partial ...
- MySQL Transaction--快照读和当前读
在MySQL读取数据时可以按照是否使用一致性非锁定读来分为快照读和当前读:1.快照读:MySQL使用MVCC (Multiversion Concurrency Control)机制来保证被读取到数据 ...
- ballerina 学习二十九 数据库操作
ballerina 数据操作也是比较方便的,官方也我们提供了数据操作的抽象,但是我们还是依赖数据库驱动的. 数据库驱动还是jdbc模式的 项目准备 项目结构 ├── mysql_demo │ ├── ...
- c++中的流
streambuf类为缓冲区提供内存,并提供了用于填充缓冲区,访问缓冲区,刷新新缓冲区和管理缓冲区内存的类方法. ios_base类表示流的一般特征,如是否可读,是二进制还是文本流等. ios类基于i ...
- asterisk channel driver dev ref
入口函数load_module load_config ast_channel_register console_tech ast_cli_register_multiple ...
- 【转】每天一个linux命令目录
原文网址:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列 ...
- vue 项目中,定时器(setInterval)的写法
vue 项目中,定时器(setInterval)的写法: fetchJobList是一个方法,里面有dispatch一个action进行请求接口的代码. data () { return { inte ...
- 理解REST和SOA
REST -- REpresentational State Transfer 直接翻译:表现层状态转移. 精辟理解:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作 ...
- Linux(Centos7)下安装 zookeeper docker版 集群
为了省去麻烦的软件安装,现在开发环境需要的软件越来越习惯于docker安装了,先看下安装后的截图,开发环境正在启动的容器 1.首先系统需要先支持docker …… 由于之前安装几次都没有做流程记录,在 ...
- 全局 SqlConnection
class SqlHelper { public static SqlConnection conn; public static SqlConnection Open(string connStr) ...