用于序列化的两个模块
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"))
正文到此结束

本文标题:Python函数和常用模块-json_and_pickle_shelve模块

本文链接:https://www.hantaosec.com/323.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源及链接,不带链接禁止任何转载!访问任何网络安全相关文章,则视为默认接受网络安全文章免责声明 ,请认真阅读。

喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。