序列化

JSON

json是内置函数,用于多种语言交互,编程语言通用数据

import  json  # 导入json模块

dic = {':2}

dumps:  将字典转换成字符串

s = json.dumps(dic)   # 将字典对象转换成字符串
print(type(s))

loads: 将字符串转换成字典

di = '{"1":2}'
d = json.loads(di)    # 将字符串转换成字典
print(d)
print(type(d))

dump:将字典转换字符串写入到文件中

json.dump({'1':4},open('a','w',encoding='utf-8'))

load:将文件中的字符串转换成字典

d = json.load(open('a','r',encoding='utf-8'))
print(d)

总结:
json.load()    #参数文件句柄(r), 将文件中字符串转换成字典
json.dump()   #对象(字典),文件句柄(w) 将字典转换字符串写入到文件中
json.dumps()   #对象(字典) 将字典转换成字符串
json.loads()   #字符串(字典) 将字符串转换成字典

pickle

pickle模块是python中特有的模块,只支持Python使用

dumps:    将对象转换成类似二进制的东西
import pickle    # 导入模块

print(pickle.dumps({'1':4})) #将对象转换成类似二进制的东西

dump:    将字典转换成字节写入到文件中

pickle.dump({'2':4},open('b','wb'))

loads:    将一个堆类似于二进制的东西转换成字典

print(pickle.loads(b'x80x03}qx00Xx01x00x00x001qx01Kx04s.'))

load:    将文件中的字节转换成字典

d = pickle.load(open('b','rb'))

# 总结:
# josn,pickle 对比

# loads     json里的将字符串转换成字典            pickle 将字节转换成字典
# dumps   json里的将字典转换成字符串            pickle 将字典转换成字节
# load      json里的将文件中的字符串转换成字典         pickle 将文件中的字节转换成字典
# dump    json里的将字典转换字符串写入到文件中,    pickle 将字典转换成字节写入到文件中

shelve

#  文件+字典操作

import shelve     # 模块导入

f = shelve.open('c',writeback=True) #创建文件 # writeback = True 回写

可以使用writeback强制写入

然后我们可以对f进行字典方法操作,但是keys,values无法使用

原文地址:https://www.cnblogs.com/mk-lovefreedom/p/10565955.html