Python函数和常用模块-json_and_pickle_shelve模块 | 【韩涛博客】

Python函数和常用模块-json_and_pickle_shelve模块

Python函数和常用模块-json_and_pickle_shelve模块

用于序列化的两个模块

json,用于字符串 和 python数据类型间进行转换

pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

json序列化:就是将内存的对象存储在硬盘上变成字符串

方法一:

info={
'name':'hunter'
'age':22
}
f=open("test.test","w")
f.write(str(info))
f.close()

方法二:

import json
info={
'name':'hunter'
'age':22
}
f=open("test.test","w")
f.write(json.dumps(info))
f.close()

反序列化:将硬盘中的文件重新加载到内存中

方法一:

info={
'name':'hunter'
'age':22
}
f=open("test.test","r")
data = eval(f.read())
f.close()
print(data['age'])

方法二:

import json
info={
'name':'hunter'
'age':22
}
f=open("test.test","r")
data = json.loads(f.read()) 
print(data['age'])

json主要是处理简单的数据类型,面对于繁杂的类型,需要使用pickle,使用方法与json方法一样

pickle序列化:

方法一dumps:

import pickle
info={
'name':'hunter'
'age':22
}
f=open("test.test","wb")
f.write(pickle.dumps(info))
f.close()

方法二dump:

pickle.dump(info.f)#等于f.write(pickle.dumps(info))
f.close()

注:默认的pickle后会以二进制的形式体现,储存也是以二进制的形式,pickle只是Python中的语言,不是通用的

pickle反序列化:

方法一loads:

import pickle
info={
'name':'hunter'
'age':22
}
f=open("test.test","rb")
data = pickle.loads(f.read()) 
print(data)

方法二load:

data = pickle.load(f)#等于 data = pickle.loads(f.read())

shelve 模块:

生成:

import shelve
d = shelve.open('shelve_test') #打开一个文件
info={'age':25,"job":'IT'}
name = ["ht","rain","test"]
d["name"] = name #持久化列表
d["info"] = info #持久化列表 
d.close()

读:

import shelve
d = shelve.open('shelve_test') #打开一个文件
print(d.get("name"))
print(d.get("info"))

广告

发表评论 取消回复
表情 图片 链接 代码

分享
×
订阅图标按钮