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

原文地址:https://www.cnblogs.com/Fushengliangnian/p/9270019.html

时间: 2024-11-09 18:26:26

oldboy 23th day . I love Python. 模块之初始, 以及 序列化模块的相关文章

模块的介绍之序列化模块

一,什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过pytho

Python进阶(九)----os,sys,hashlib模块

Python进阶(九)----os,sys,hashlib模块 一丶序列化模块 什么是序列化: ? 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输,或文件保存) ? 真正的意义:变量从内存中变成可存储或传输的过程称之为序列化 json模块: ? 是所有语言公认的一种序列,最常用,支持的数据结构有限:"list(tuple), int .str ,bool,None,float." ### dumps ,loads : 主要网络传输 , 用于文件的读取. import j

内置模块(一)——序列化模块:json、pickle、shelve

一.序列化模块 1.什么是序列化呢? 序列化的本质就是:将一种数据结构(如字典.列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化. 特别注意:特殊的序列,而不是我们常用的str这种字符串. 2.序列化的作用 如果你写入文件中的字符串是一个序列化后的特殊的字符串,那么当你从文件中读取出来,是可以转化回原数据结构的. 3.小小总结: 序列化模块就是:将一个常见的数据结构转化成一个特殊的序列,并且这个特殊的序列还可以反解回去.它的主要用途:文件读写数据,网络传输数据. 二.pyt

铁乐学python_day25_序列化模块

部份内容摘自博客http://www.cnblogs.com/Eva-J/ 回顾内置方法: __len__ len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度 __hash__ hash(obj)的结果依赖于obj.__hash__()的结果,计算对象的hash值 __eq__ obj1 == obj2 的结果依赖于obj.__eq__()的结果,用来判断值相等 __str__ str(obj) print(obj) '%s'%obj 的结果依赖于__str__,用来做

Python模块-logging、序列化模块、re模块

MarkdownPad Document logging模块 import logging   logging.debug('debug message')   logging.info('info message')   logging.warning('warning message')   logging.error('error message')   logging.critical('critical message') 运行结果: C:\Python36\python.exe C:

python基础之正则表达式和re模块

正则表达式 就其本质而言,正则表达式(或 re)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 字符匹配(普通字符,元字符): 1 普通字符(完全匹配):大多数字符和字母都会和自身匹配 1 >>> import re 2 >>> res='hello world good morning' 3 >>> re.findall(

Python基础(13)_python模块之re模块(正则表达式)

8.re模块:正则表达式 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 字符匹配(普通字符,元字符): 1.普通字符:大多数字符和字母都会和自身匹配              >>> re.findall('alvin','yuanaleSxalexwupeiqi')                      ['alvi

Python之常用模块(四)os模块和sys模块

5.4 random模块 print(random.random())#在0~1之间随机生成一个浮点数 print(random.uniform(0,10))#在0~10时间随机生成一个浮点数,可以指定范围 print(random.randint(1,10))#随机生成一个整数,可以指定范围 print(random.randrange(1,5,2))#起始终止步长,生成一个数字 print(random.chioce([1,2,3,4,5,6]))#随机选择一个元素 print(random

Python 入门之 内置模块 -- 序列化模块(json模块、pickle模块)

Python 入门之 内置模块 -- 序列化模块(json模块.pickle模块) 1.序列化 Python中这种序列化模块有三种: ? json模块 : ? 不同语言都遵循的一种数据转化格式,即不同语言都使用的特殊字符串.(比如Python的一个列表[1, 2, 3]利用json转化成特殊的字符串,然后在编码成bytes发送给php的开发者,php的开发者就可以解码成特殊的字符串,然后在反解成原数组(列表): [1, 2, 3]) ? json序列化只支持部分Python数据结构:dict,l