jsonpickle数据序列化
json&pickle数据序列化
json 用于字符串和python数据类型间进行转换
pickle 用于python特有的类型 和 python的数据类型间进行转换序列化:把字典或者字符串的内存对象 存到硬盘上;
反序列化:就是从硬盘上加载出来
json序列化与反序列化
序列化:把字典或者字符串的内存对象 存到硬盘上;
import json
info = {"name" : "aaa","age" : 22
}
f = open("test.text","w",encoding="utf-8")
f.write(json.dumps(info))
f.close()反序列化:就是从硬盘上加载出来
import json
f = open("test.text","r")
data = json.loads(f.read())
print(data["age"])
print(data)
f.close()
pickle序列化和反序列化
序列化:把字典或者字符串的内存对象 存到硬盘上;
import pickle
#此函数再这里没有实际意义,接着往下看
def sayhi(name):print("hello,",name)info = {"name" : "bbb","age" : 33
}f = open("text2.text","wb")
f.write(pickle.dumps(info))
f.close()反序列化:就是从硬盘上加载出来
import pickle
f = open("text2.text","rb")
def sayhi(name):print("hello22,", name)data = pickle.loads(f.read())
print(data) #结果是{'name': 'bbb', 'age': 33}
print(data["age"]) #结果是33
#运行sayhi 函数,查看显示结果,这里只是表现了一种写代码的方式。
sayhi(data["name"]) #结果是hello22, bbb
f.close()
pickle序列化2
上边的pickle序列化可以写成:
import pickle
def sayhi(name):print("hello,",name)info = {"name" : "aaa","age" : 22,"aaa" :sayhi
}
f = open("text2.text","wb")
pickle.dump(info,f) # 完全相同f.write(pickle.dumps(info))
f.close()#反序列化:就是从硬盘上加载出来
import pickle
f = open("text2.text","rb")
data = pickle.load(f)
print(data)
print(data["age"])
sayhi("name")
f.close()
json多次dumps和多次loads
序列化:把字典或者字符串的内存对象 存到硬盘上;
import json
info = {"name" : "aaa","age" : 22
}
f = open("test01.text","w")
f.write(json.dumps(info))
info["age"] = 30
f.write(json.dumps(info))
f.close()
'''
test01.text内容如下:
{"name": "aaa", "age": 22}{"name": "aaa", "age": 30}
'''反序列化:就是从硬盘上加载出来 ,在这里loads的时候会报错。
import json
f = open("test01.text","r")
data = json.loads(f.read())
print(data["age"])
f.close()当学序列化只dumps一次,在loads就正确了
序列化
import json
info = {"name" : "aaa","age" : 22
}
f = open("test01.text","w")
#f.write(json.dumps(info))
info["age"] = 30
f.write(json.dumps(info))
f.close()
#反序列化
import json
f = open("test01.text","r")
data = json.loads(f.read())
print(data["age"]) #结果是:30
f.close()
'''
总结:
json可以dumps多次,loads的时候报错;同时也不可以loads多次;
要想loads多次,就在dumps的时候dumps成不同的文件,laods不同文件。
'''
pickle多次dumps和多次loads
序列化
import pickle
info = {"name" : "aaa","age" : 22
}
f = open("test001.text","wb")
f.write(pickle.dumps(info))
info["age"] = 30
f.write(pickle.dumps(info))
f.close()反序列化
f = open("test001.text","rb")
data = pickle.loads(f.read())
print(data["age"]) #结果是:22
f.close()
'''
总结:
pickle可以dumps多次,loads的时候不报错,但得出的结果是第一次dumps的内容;同时也不可以loads多次;
要想loads多次,就在dumps的时候dumps成不同的文件,laods不同文件。
'''
总结:json 用于字符串和python数据类型间进行转换
pickle 用于python特有的类型 和 python的数据类型间进行转换序列化:把字典或者字符串的内存对象 存到硬盘上;
反序列化:就是从硬盘上加载出来当json dumps多次的时候,loads的时候报错;同时也不可以loads多次;
要想loads多次,就在dumps的时候dumps成不同的文件,laods不同文件。当pickle dumps多次的时候,loads的时候不报错,但得出的结果是第一次dumps的内容;同时也不可以loads多次;
要想loads多次,就在dumps的时候dumps成不同的文件,laods不同文件。
jsonpickle数据序列化相关推荐
- php serialize unserialize 数据序列化 与 反序列化
序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得. 用一个类的时候都是new一下! 如果serialize 将数据序列化以后存到数据库中等 用的时候就不再new了 反序列化以 ...
- Java实现数据序列化工具Avro的例子
1.Avro简介 Avro是一个数据序列化的系统. 它可以提供: 1)丰富的数据结构类型 2)快速可压缩的二进制数据形式 3)存储持久数据的文件容器 4)远程过程调用RPC 5)简单的动态语言结合功能 ...
- 【Flask项目2】python对象分页数据序列化基类(5)
comment-utils-serializer.py文件 class BasePaginateSerializer(object):"""分页数据序列化基类" ...
- python建立数据库并序列化_Python之数据序列化(json、pickle、shelve)
一.python类型数据和JSON数据格式互相转换 pthon 中str类型到JSON中转为unicode类型,None转为null,dict对应object 二. 序列化/反序列化 将对象转换为可通 ...
- 常用模块(数据序列化 json、pickle、shelve)
本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...
- python pickle模块:数据序列化和反序列化
pickle模块是python中数据序列化和反序列化的一个包,该模块提供了一套算法,用于对一个Python对象进行serializing(序列化为字符串)和de-serializing(从字符串构 ...
- python读取序列5之后的数据_Python 基本功: 5. 数据序列化
这篇文章紧接着前篇:多多教Python:Python 基本功: 4. 读写文件zhuanlan.zhihu.com 仔细阅读的小伙伴会发现,在基本功4 里最后的一个示例中,我们读取解析了文件中的内容 ...
- 高效数据序列化的工具 FlatBuffers 的初体验
2019独角兽企业重金招聘Python工程师标准>>> 1. 背景 最近在项目中需要使用一种高效数据序列化的工具.碰巧在几篇文章中都提到了FlatBuffers 这个库.特别是 An ...
- 浅谈C# XML WebServer数据序列化及数据压缩
由于公司近期业务的需要,本要研究一些有关 XML WebServer下数据序列化及数据压缩的实现问题,现与大家分享一下,也希望大家勇于讨论,互相学习.由于要实现网络传输入,考虑到操作系统.网络性能等几 ...
最新文章
- 5.3.4 TCP流量控制
- python主要数据变量及其类型说明_Python的数据类型和变量
- 哪里有计算机一级的题库,计算机一级题库带答案哪有?
- UI组件之TextView及其子类(一)TextView和EditText
- 多线程设计模式(四):生产者-消费模式
- linux 编译 php7_Linux下编译安装PHP7
- BZOJ2646 : neerc2011 flight
- 解决 spring mvc 3.0 结合 hibernate3.2 使用tx:annotation-driven声明式事务无法提交的问题(转载)...
- Castle动态代理拦截器可构建可重启的流
- 城市流动劳动力的数学模型matlab,数学建模_人口预测
- VMware workstations pro16.23已经安装vmware tool,Ubuntu仍然无法复制粘贴
- 视频教程-2020软考网络规划设计师基础知识视频教程-软考
- 新闻发布系统3.0(javaBean封装)
- POI-HSSFWorkbook合并单元格边框及文字居中问题
- pythonista_Pythonista的假期愿望清单
- 如何实现一个“线程池”
- Anemometer让慢查询可视化
- Python给手机发通知
- jpa 报错:No EntityManager with actual transaction available for current thread - cannot reliably proce
- 28.从键盘输入10个正负相间的整数,输出个位数是奇数、十位数是偶数的所有数。
热门文章
- Java BigInteger类| modInverse()方法与示例
- 使用Java中的equals()和compareTo()方法比较字符串
- 如何测定拼色染液中,各染料在不同染色时间时,染液中残留染料量及织物上吸附上染的染料量?
- eshop.sql(复制的时候注意路径!!!)
- 博客上一些项目相关源码链接
- tr闭包_嵌套函数及闭包
- 源码 连接mysql_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
- pow(x,y)函数
- 剑指Offer09. 用两个栈实现队列
- 韦东山衔接班——4.4_构建根文件系统之构建根文件系统