python基础——Json和Pickle
来源:互联网 发布:如果明朝没有灭亡知乎 编辑:程序博客网 时间:2024/05/29 19:46
Json
Json是能跨语言序列化数据,也就是说在python中Json序列化的数据放到Java同样可用,序列化的意思就是能按字典、列表等python数据的格式转换成字符串存储在内存中(内存只能按字节或者二进制形式的存储)。Json只能序列化简单的数据,例如:列表、字典、集合等数据格式,函数就不能进行序列化。
序列化举例说明:
import json#json只能处理简单的数据,例如列表、字典、集合之类的,它是一种夸语言之间的交互式info={ 'name':'Jorocco', 'age':23, }f=open("test.txt","w")#文件只能存字符串,把对象转成字符串就是序列化f.write(json.dumps(info))#通过此方法将数据进行序列化json.dump(info,f)#与上面的方法完全等同#f.write(str(info))#要是不通过Json方法,就只能通过此方法f.close()
有序列化,就有反序列化,反序列化就是将字符串转成python特定的格式。
反序列化举例说明:
import jsonf=open("test.txt","r")data=json.loads(f.read())#反序列方法data=json.load(f)#完全等同于上面的反序列化print(data)
pickle
pickle,用于python所有的类型 和 python的数据类型间进行转换,相比Json,它能转换比如函数类型。
pickle序列化举例说明
import pickledef sayhi(name): print("hello,",name) print("hello2")info={ 'name':'Jorocco', 'age':23, 'func':sayhi#pickle可以序列化python所有的数据类型,只需要将函数的地址传递进来,但是反序列化的时候则会报错,因为该地址随着此程序的运行结束就被回收了 }f=open("test.txt","wb")#pickle存储的是二进制文件,所以写入的时候为'wb'f.write(pickle.dumps(info))#通过此方法将数据进行序列化#pickle.dump(info,f) #等同于f.write(pickle.dumps(info))f.close()
pickle反序列化举例说明
import pickledef sayhi(name): print("hello,",name)f=open("test.txt",'rb')data=pickle.loads(f.read())#如果就这样的话,会报错,因为序列化了一个函数,它的地址随着序列化程序的运行结束就被回收了pickle.load(f)#和上面的效果一样#但是当我们加了上面的那个和序列化函数的名称一样的函数时,就可以反序列化了,即使功能不同print(data['func']("Jorocco"))
注意:在python3中可以序列化多次,但只能反序列化一次,因此,序列化了多次,反序列化的时候就会出错,所以我们都只序列化一个文件,反序列化一个文件,如果实在要进行序列化多次,那就序列化成多个文件。
阅读全文
0 0
- python基础——Json和Pickle
- Python 基础—— pickle 模块
- Python序列化与反序列化——json和pickle
- python序列化模块json和pickle
- python学习-json&pickle
- python基础-序列化json、pickle 、shelve三种方式
- json和pickle
- json和pickle区别
- Python 3.6 json和pickle的dump和load方法
- python中内置函数和json、pickle数据序列化
- Python中的序列化以及pickle和json模块介绍
- pickle和cPickle——python对象序列化
- python struct、json、pickle模块
- python pickle模块 json模块
- python学习笔记--json&&pickle
- Python基础知识之json&pickle
- 常用模块——sys,pickle,json
- <11>python学习笔记——json and pickle序列化
- 经典机器学习&数据挖掘算法
- 矩形覆盖java实现
- java通过经纬度获取位置截图并上传
- 关于FragmentActivity
- 第23讲项目2-乱玩数字
- python基础——Json和Pickle
- AngularJS Directive 隔离 Scope 数据交互
- Spinner使用所遇问题及自定义adapter
- jQuery版本如何选择
- Android Studio下解决HierarchyView无法使用的问题
- 自定义View学习之锯齿波纹效果
- Pycharm在创建py文件时,自动添加文件头注释.
- 登录业务逻辑思路
- 写给CTO的主流区块链架构横向剖析