一, 今日主要内容:
模块: 一个py文件就是一个模块
分三类: 1, 内置模块: 登录模块, 时间模块, sys模块, os模块 等等 都是内置模块
2, 扩展模块: 需要下载的第三方模块
3, 自定义模块: 自己写的模块.
1, 序列化模块: json, pickle, shelve( 了解)
序列化: 创建一个序列 ( 字符串类型的序列) 一个数据类型 ---> 序列化的字符串
反序列化过程: 序列化的字符串 ---> 她所对应的数据化类型.
json: 适用于不同语言之间的, 但是可支持的数据类型比较少有且只有: 字符串, 数字, 列表, 字典. 有4个方法: 用于网络的传输:dumps() <--> loads() 用于有关在文件中的存取: dump() <--> load()
1, 数据通过网络,发送给别人:
json.dumps(需要转为json的内容.) 得到的也是字符串类型, 不过此字符串,非彼字符串, 此字符串 是序列化后的字符串, 可以在网络上直接发送, 也可以让别的语言都懂, 同时此字符串与彼字符串的区别是:此字符串, 是双引号, 彼字符串是单引号
json.loads(被json.dumps过的数据): 反序列化过程.
2, 写入文件.
json.dump(obj, fq) obj = 对象, fq = 文件句柄. 会把序列化了的字符串, 写入文件
json.load(fq) fq = 文件句柄, 读取,反序列化了的字符串,
ps: 将多个序列化的字符串写入文件, 然后反序列化, 就会出错. 如果真的想写入多个的话, 需要用dumps 和 loads , 如果是字典的话, key必须是 字符串
pickle: 序列化模块 只用于python之间, 可支持python的 所有数据类型. 也是有4个方法(两对) 用于网络传输 : dumps() <-->loads() 用于文件操作宜: dump< --> load()
1, 网络传输
pickle.dumps() 会转化成 bytes 类型, 无法decode的.
pickle.loads() 会把 bytes 转化成能看的, 并且能用的数据类型.
2, 文件操作
pickle.dump()
pickle.load()
ps:这两个比 json 的好用, 他可以读取很多很多 不同的列表,但是和
shelve: 只用于python, 更像一个小工具. 与文件相关
2, 摘要算法: hashlib
原文地址:https://www.cnblogs.com/Fushengliangnian/p/9270019.html