无序模块
什么是无序模块,将字符串转化为十六进制的字符串类型,主要运用在网络编程中。
1,json模块
1,用于网络传输,跨语言,可用的类型有 int str 列表--》元祖会变为列表 字典--》双引号表示
2,缺点:支持的数据类型有限
1.json.dumps()
将字符创转化为bytes类型,用来传输
2.json.loads()
读取bytes类型
dic = {'剑圣':'我的剑就是你的剑','赵信':'陷阵之志,有死无生','皇子':'犯我德邦者,虽远必诛'} lol = json.dumps(dic,ensure_ascii=False) #在网络编程中的dumps将字符串转化为十六进制的字符串类型 print(lol) ret = json.loads(lol) #用来解读十六进制 print(ret)
3.json.dump()
文件的写入 但是当文件写入数据较多时 需要用dumps
4.json.load()
文件内容读取
f = open('233','a',encoding='utf-8') json.dump(dic,f)#文件写入 f.close() f1 = open('233','r',encoding='utf-8') json.loads(f1)#文件读取 f.close()
2.pickle模块
1.在python平台之间使用,使用便利
1,pickle.dumps
2.pickle.loads
3.pockle.dump
4.pockle.load
dic = {'剑圣':'我的剑就是你的剑','赵信':'陷阵之志,有死无生','皇子':'犯我德邦者,虽远必诛'} dic1 = {'剑圣':'我的剑就是你的剑','赵信':'陷阵之志,有死无生','皇子':'犯我德邦者,虽远必诛'} dic2 = {'剑圣':'我的剑就是你的剑','赵信':'陷阵之志,有死无生','皇子':'犯我德邦者,虽远必诛'} dic3 = {'剑圣':'我的剑就是你的剑','赵信':'陷阵之志,有死无生','皇子':'犯我德邦者,虽远必诛'} k = pickle.dumps(dic) print(k) l = pickle.loads(k) print(l) f = open('233','ab') ret = pickle.dump(dic,f) f.close() f1 =open('233','rb') print(pickle.load(f1)) f1.close() f=open('233','wb') pickle.dump(dic,f) pickle.dump(dic1,f) pickle.dump(dic2,f) pickle.dump(dic3,f) f.close() f1 =open('233','rb') while True: try: print(pickle.load(f1)) except EOFError: break f.close() class A: def __init__(self,name,age): self.name = name self.age = age a = A('alex',45) k=pickle.dumps(a) #读取所有属性, 将a对象的属性序列化 l=pickle.loads(k) print(l.__dict__)
3.shelve模块
专有化的模块,只针对文件的读取调用。
f['']模式
4.hashlib模块
两种运用
1,在文件的校验上面,传输者和接收者的文件是否一致
2,密码的加密 分多种加密方式:
1.MD5 2.sha加密方式
1,文件的一致性校验:
在文件上传网络之后,为了校验上传的文件和之后的别人接收的文件是否一致,利用hashlib中md5的加密方式,验证两边问价加密后是否密码一致,即使文件有一个空格的不同都会使得加密后的md5密码不一样。
md5obj = hashlib.md5()
with open('file1','rb')as f:
countent = f.read() #文件加密
md5obj.update(countent)
print(md5obj.hexdigest())
2,密文验证的时候加密 MD5加密方式, 通用的加密方式 sha文件加密方式, password = input('>>>>') k = hashlib.md5() k.update(password.encode('utf-8')) m = hashlib.md5() m.update('233'.encode('utf-8')) if k.hexdigest() == m.hexdigest(): print('666') else: print('2333')