模块

序列化模块,随机数模块,

json:将数据格式化成字符串的过程是序列化,反过来是反序列化.

常用方法:

dumps:将数据序列化成字符串,保存到内存中.

dump:将数据序列化成字符串,保存在文件中.

loads:将内存中的序列化字符串,反序列化成数据

load:将文件中的序列化字符串,反序列化成数据

json只能序列化python中常见的数据类型,集合这种数据类型就不能识别.

它的特点是比较通用.简单.

json字符串保存在文件中,反序列化时只能一次性都反序列化到内存中,没有办法将多次序列化的内容分开反序列化.

如何实现将多次序列化的内容依次反序列化?

可以先把多次需要序列化成json的数据先序列化到内存中,然后在数据后添加换行符.再把这样的数据写到文件中.

反序列化时,只需要依次读取文件中的内容,并按照行为单位,再依次进行反序列化,就可以的到每次序列化的结果.

pickle模块:

pickle模块是一种专门针对python设计的序列化方案,它可以对python中所有的数据类型进行序列化,而不会产生数据丢失.

pickle序列化产生的结果是字节序列.

所以,在往文件中序列化数据时,要求文件的使用方式一定是二进制格式.

使用方式上和json基本一致.

dumps:将数据序列化成字符串,保存到内存中.

dump:将数据序列化成字符串,保存在文件中.

loads:将内存中的序列化字符串,反序列化成数据

load:将文件中的序列化字符串,反序列化成数据

shelve模块:

主要用来将数据进行本地存储,而不是通过网络传输.

序列化过程中一定要使用到本地文件,并且会产生多个文件用于文件的存储.

数据一旦序列化,就可以像使用字典一样方便查找和使用.

常用的方法就是打开文件的方法:open,这也说明了这个模块主要作用就是对数据进行持久化使用的,而非是网络传输.

import shelve

db = shelve.open('a.txt')

db['name'] = 'abc'

db['info'] = {'email':'abc@abc.com','addr':'BeiJing'}

序列化:最终目的:

实现了数据和程序的分离!!!!

随机数模块:random

1.获取一个[0,1)之间的浮点数

2.获取一个区间之内的整型值.randint(start,end)

3.从一个序列中获取一个随机的元素:random.choice

4.洗牌:shuffle

os操作系统模块:

参考笔记

sys模块:

参考笔记

hashlib模块:

主要是md5加密函数.

md5加密的主要步骤是:

1.创建一个md5加密对象,此时可以指定盐,也必须是字节序列类型.

2.针对字节序列类型的数据进行加密.

3.使用hexdigest或者是digest获取加密后的结果字节序列.

前者返回值是字符串,后者返回值是字节序列

md5加密主要使用场景:

用于对已经存在的密文和另一个用同样算法得到的密文进行比对.以此判断两个明文是否一致.

而并不是从一个密文中将明文还原.

time模块

和时间相关的模块.

主要掌握如何获取一个格式时间字符串,strftime.

此模块中主要有三种数据类型:

1.struct_time

2.格式化时间字符串

3.时间戳

gmtime,localtime这两个函数如果不加任何参数的话,结果就是一个结构化时间对象.它是一个包含了9个字段的一个对象.

这9个字段的值都是可以单独取出的.

通过这个结构化时间对象,可以转化成一个可读性强的时间字符串.

time.strftime('%Y-%m-%d')

'2019-03-20'

结构化时间对象strftime->时间字符串

时间字符串strptime->结构化时间对象

结构化时间对象 mktime->时间戳

时间戳gmtime,localtime->结构化时间对象

posted @ 2019-03-23 15:38  blog_wu  阅读(143)  评论(0编辑  收藏  举报