模块 序列化 json pickle shelv xml
2021-05-03 14:27
标签:iphone 格式 tag find 网络传输 pickle 多次 规则 ict 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. pickle封装了shelve 只能在python中用 作用: 模块 序列化 json pickle shelv xml 标签:iphone 格式 tag find 网络传输 pickle 多次 规则 ict 原文地址:https://www.cnblogs.com/ham-731/p/12121428.html序列化
json 模块
json.dump(d,f) json.load(f) #与文件得交互 dump(可多次,但不那样做) load(只可一次)
把数据类型转成字符串存到内存里得意义?
json.dumps(data) json.loads(q) #与内存得交互
1.把内存数据 通过网络 共享给远程其他人 必须:bytes
2.定义了不同语言之间得交互规则
2.1 纯文本:坏处不能共享复杂得数据类型
18:32 424224 iphone 5000
2.2 xml 占得空间大 效率低
pickle 模块
rb wb 和json得四个方法一样 写读 都是bytes形式的 可以将函数dump load都行
pickle.dumps(d) json.loads(d)
pickle.dump(d,pk) pickle.load(pk)
import pickle
data = {
'roles':[
{'role':'monster','type':'pig','life':50},
{'role':'hero','type':'关羽','life':80}
]
}
def sayhi():
print('sayhi')
s = pickle.dumps(data)
print(s,type(s))
data = pickle.loads(s)
print(data,type(data),data['roles'])
pickle.dump(data,open('test.json','wb'))
data = pickle.load(open('test.json','rb'))
print(data,type(data))
s = pickle.dumps(sayhi)
print(s)
data = pickle.loads(s)
data()
pickle.dump(sayhi,open('test1.json','wb'))
pickle.load(open('test1.json','rb'))()
json 和 pickle 得区别
json 转化得数据类型:str int list tuple dict 不支持set
pickle 支持python里得所有数据类型 确定是 只能在python里使用 函数都可以序列化
shelve 模块
序列化:
import shelve
f = shelve.open('shelve_test') # 打开一个文件
names = ["alex", "rain", "test"]
info = {'name':'alex','age':22}
f["names"] = names # 持久化列表
f['info_dic'] = info
f.close()
反序列化:
import shelve
d = shelve.open('shelve_test') # 打开一个文件
print(d['names'])
print(d['info_dic'])
#del d['test'] #还可增加 删除 可整体重新赋值
xml 模块
不同语言之间内存数据得交换
内存得数据可转换成xml存到硬盘上1.xml的格式如下,就是通过节点来区别数据结构的:
文章标题:模块 序列化 json pickle shelv xml
文章链接:http://soscw.com/index.php/essay/81832.html