Python---json和pickle序列化
2018-03-22 19:30
711 查看
1. 序列化:把内存的一些数据对象存到硬盘。数据对象是一些基本数据类型,如list dict,set等。
2. 反序列化:将硬盘的内容加载成原来的数据对象。
3. 为什么要用序列化与反序列化:当你想把一个数据暂时保存起来而过会又要用的时候,就可以把它先保存到硬盘,保证安全性。需要时在取出来。
4. json序列化
一般将内存数据对象存到硬盘上的方法如下: 文件只能存字符串或二进制person={"name":'hy',
"age":18}
f=open("test.text","w")
f.write(str(person))
f.close
f=open("test.text","r")
data=eval(f.read())
f.close
print(data['name'])而json序列化的方法如下:import json
#json序列化
person={"name":'hy',
"age":18}
f=open("test.text","w")
f.write(json.dumps(person)) #json.dumps()将基本数据类型转为str
f.close()
#json 反序列化
f=open("test.text","r")
data=json.loads(f.read()) #json.loads()将字符串转为基本数据类型
print(data['age'])json序列化只支持简单的数据转化。
5. pickle序列化可对函数进行序列化。如下:def hello(name):
print("hello world",name)
import pickle
person={"name":'hy',
"age":18,
"func":hello,
}
f=open("test.text","wb")
f.write(pickle.dumps(person)) #pickle.dumps()将数据类型转为str
f.close()
#pickle 反序列化
f=open("test.text","rb")
data=pickle.loads(f.read()) #pickle.loads()将字符串转为数据类型
print(data['age'])
print(data["func"]("hhy"))
f.close()函数序列化的是整个函数对象非函数名地址。Pickle序列化只存在在Python语言。而json与其他语言几乎通用。
此外:f.write(pickle.dumps(person)) #等价于 pickle.dump(person,f)
data=pickle.loads(f.read()) #等价于data=pickle.load(f)
2. 反序列化:将硬盘的内容加载成原来的数据对象。
3. 为什么要用序列化与反序列化:当你想把一个数据暂时保存起来而过会又要用的时候,就可以把它先保存到硬盘,保证安全性。需要时在取出来。
4. json序列化
一般将内存数据对象存到硬盘上的方法如下: 文件只能存字符串或二进制person={"name":'hy',
"age":18}
f=open("test.text","w")
f.write(str(person))
f.close
f=open("test.text","r")
data=eval(f.read())
f.close
print(data['name'])而json序列化的方法如下:import json
#json序列化
person={"name":'hy',
"age":18}
f=open("test.text","w")
f.write(json.dumps(person)) #json.dumps()将基本数据类型转为str
f.close()
#json 反序列化
f=open("test.text","r")
data=json.loads(f.read()) #json.loads()将字符串转为基本数据类型
print(data['age'])json序列化只支持简单的数据转化。
5. pickle序列化可对函数进行序列化。如下:def hello(name):
print("hello world",name)
import pickle
person={"name":'hy',
"age":18,
"func":hello,
}
f=open("test.text","wb")
f.write(pickle.dumps(person)) #pickle.dumps()将数据类型转为str
f.close()
#pickle 反序列化
f=open("test.text","rb")
data=pickle.loads(f.read()) #pickle.loads()将字符串转为数据类型
print(data['age'])
print(data["func"]("hhy"))
f.close()函数序列化的是整个函数对象非函数名地址。Pickle序列化只存在在Python语言。而json与其他语言几乎通用。
此外:f.write(pickle.dumps(person)) #等价于 pickle.dump(person,f)
data=pickle.loads(f.read()) #等价于data=pickle.load(f)
相关文章推荐
- Python之数据序列化(json、pickle、shelve)
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
- python中内置函数和json、pickle数据序列化
- python学习之路(json & pickle 模块 ---序列化,反序列化)
- Python基础-序列化(json/pickle)
- python全栈开发-json和pickle模块(数据的序列化)
- day5-python中的序列化与反序列化-json&pickle
- python 序列化数据:pickle与json ,dumps与loads
- python 序列化之JSON和pickle详解
- python--json和pickle序列化
- Python序列化与反序列化-json与pickle
- Python序列化模块json和pickle
- Python-json与pickle数据序列化
- Python模块:shutil、序列化(json&pickle&shelve)、xml
- Python 之 pickle/json序列化 之 2
- python序列化模块json和pickle
- Python序列化基础知识(json/pickle)
- python 之序列化(pickle模块和json模块)
- python基础6之迭代器&生成器、json&pickle数据序列化
- Python模块知识4:序列化Json/pickle