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不同文件。

     本文转自506554897 51CTO博客,原文链接:http://blog.51cto.com/506554897/2057325,如需转载请自行联系原作者

jsonpickle数据序列化相关推荐

  1. php serialize unserialize 数据序列化 与 反序列化

    序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得. 用一个类的时候都是new一下! 如果serialize 将数据序列化以后存到数据库中等  用的时候就不再new了 反序列化以 ...

  2. Java实现数据序列化工具Avro的例子

    1.Avro简介 Avro是一个数据序列化的系统. 它可以提供: 1)丰富的数据结构类型 2)快速可压缩的二进制数据形式 3)存储持久数据的文件容器 4)远程过程调用RPC 5)简单的动态语言结合功能 ...

  3. 【Flask项目2】python对象分页数据序列化基类(5)

    comment-utils-serializer.py文件 class BasePaginateSerializer(object):"""分页数据序列化基类" ...

  4. python建立数据库并序列化_Python之数据序列化(json、pickle、shelve)

    一.python类型数据和JSON数据格式互相转换 pthon 中str类型到JSON中转为unicode类型,None转为null,dict对应object 二. 序列化/反序列化 将对象转换为可通 ...

  5. 常用模块(数据序列化 json、pickle、shelve)

    本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...

  6. python pickle模块:数据序列化和反序列化

      pickle模块是python中数据序列化和反序列化的一个包,该模块提供了一套算法,用于对一个Python对象进行serializing(序列化为字符串)和de-serializing(从字符串构 ...

  7. python读取序列5之后的数据_Python 基本功: 5. 数据序列化

    这篇文章紧接着前篇:多多教Python:Python 基本功: 4. 读写文件​zhuanlan.zhihu.com 仔细阅读的小伙伴会发现,在基本功4 里最后的一个示例中,我们读取解析了文件中的内容 ...

  8. 高效数据序列化的工具 FlatBuffers 的初体验

    2019独角兽企业重金招聘Python工程师标准>>> 1. 背景 最近在项目中需要使用一种高效数据序列化的工具.碰巧在几篇文章中都提到了FlatBuffers 这个库.特别是 An ...

  9. 浅谈C# XML WebServer数据序列化及数据压缩

    由于公司近期业务的需要,本要研究一些有关 XML WebServer下数据序列化及数据压缩的实现问题,现与大家分享一下,也希望大家勇于讨论,互相学习.由于要实现网络传输入,考虑到操作系统.网络性能等几 ...

最新文章

  1. 5.3.4 TCP流量控制
  2. python主要数据变量及其类型说明_Python的数据类型和变量
  3. 哪里有计算机一级的题库,计算机一级题库带答案哪有?
  4. UI组件之TextView及其子类(一)TextView和EditText
  5. 多线程设计模式(四):生产者-消费模式
  6. linux 编译 php7_Linux下编译安装PHP7
  7. BZOJ2646 : neerc2011 flight
  8. 解决 spring mvc 3.0 结合 hibernate3.2 使用tx:annotation-driven声明式事务无法提交的问题(转载)...
  9. Castle动态代理拦截器可构建可重启的流
  10. 城市流动劳动力的数学模型matlab,数学建模_人口预测
  11. VMware workstations pro16.23已经安装vmware tool,Ubuntu仍然无法复制粘贴
  12. 视频教程-2020软考网络规划设计师基础知识视频教程-软考
  13. 新闻发布系统3.0(javaBean封装)
  14. POI-HSSFWorkbook合并单元格边框及文字居中问题
  15. pythonista_Pythonista的假期愿望清单
  16. 如何实现一个“线程池”
  17. Anemometer让慢查询可视化
  18. Python给手机发通知
  19. jpa 报错:No EntityManager with actual transaction available for current thread - cannot reliably proce
  20. 28.从键盘输入10个正负相间的整数,输出个位数是奇数、十位数是偶数的所有数。

热门文章

  1. Java BigInteger类| modInverse()方法与示例
  2. 使用Java中的equals()和compareTo()方法比较字符串
  3. 如何测定拼色染液中,各染料在不同染色时间时,染液中残留染料量及织物上吸附上染的染料量?
  4. eshop.sql(复制的时候注意路径!!!)
  5. 博客上一些项目相关源码链接
  6. tr闭包_嵌套函数及闭包
  7. 源码 连接mysql_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  8. pow(x,y)函数
  9. 剑指Offer09. 用两个栈实现队列
  10. 韦东山衔接班——4.4_构建根文件系统之构建根文件系统