oldboy 23th day . I love Python. 模块之初始, 以及 序列化模块

一, 今日主要内容:
  模块: 一个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

猜你喜欢

转载自www.cnblogs.com/Fushengliangnian/p/9270019.html