1,模块,py文件就是模块,py之所以好用就是模块多。

2,模块的分类:

  1,内置模块,python 安装时自带的模块

  2,扩展模块,别人写好的,需要安装之后,可以直接使用。itchat微信模块, beautiful soap ,selenium 网页自动化测试工具,django,tornado。

  3,自定义模块,自己写的模块。

3,内置模块

  序列化模块,hashlib模块

将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化

反序列化:把转换的数据恢复为对象的过程称为对象的反序列化。

为什么要有序列化呢?

因为能存储在文件中的一定是字符串或者字节,能在网络上传输的只有字节。

4,python 的序列化模块

json 模块:所有编程语言都通用的序列化格式,它支持的数据类型非常有限,数字,字符串,列表和字典。

pickle 模块:只能在python语言的程序之间传递数据用的,pickle 支持python中所有的数据类型。

shelve python3*之后才有的。

json模块

import json
dic = {'k1':'v1','k2':'v2','k3':'v3'}
str_dic = json.dumps(dic)  #序列化:将一个字典转换成一个字符串
print(type(str_dic),str_dic)  #<class 'str'> {"k3": "v3", "k1": "v1", "k2": "v2"}
#注意,json转换完的字符串类型的字典中的字符串是由""表示的

dic2 = json.loads(str_dic)  #反序列化:将一个字符串格式的字典转换成一个字典
#注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示
print(type(dic2),dic2)  #<class 'dict'> {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}]
str_dic = json.dumps(list_dic) #也可以处理嵌套的数据类型
print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}]
list_dic2 = json.loads(str_dic)
print(type(list_dic2),list_dic2) #<class 'list'> [1, ['a', 'b', 'c'], 3, {'k1': 'v1', 'k2': 'v2'}]

loads和dumps

View Code

json.dumps(对象) 转化成字符串。

json.loads(对象)再转化成原来的数据类型。

dump 方法接受一个文件句柄,直接将对象转换成json字符串写入文件。

load 方法接受一个文件句柄,直接将对象中的json字符串转换成数据结构返回。从文件中提取。

import json
dict ={'dabiagr':('ad',23,'234')}
f = open('大表哥','w',encoding='utf-8')
json.dump(dict,f,ensure_ascii=False)在dump时将ensure_ascii设置为False即可,此时存入json的中文即可正常显示
f.close()
import json
dict ={'dabiagr':('ad',23,'234')}
ret = json.dumps(dict,ensure_ascii=False)
print(type(dict),dict)
print(type(ret),ret)

ensure_ascii:,当它为True的时候,所有非ASCII码字符显示为\uXXXX序列,只需在dump时将ensure_ascii设置为False即可,此时存入json的中文即可正常显示。)

json 的格式化输出

import json
data = {'username':['李华','二愣子'],'sex':'male','age':18}
json_dic = json.dumps(data,sort_keys=True,indent=4,separators=(',',':'),ensure_ascii=False)
print(json_dic)
separators 分隔符
indent 缩进可以自定义
sort_keys 排序关键字

pickle 模块

import pickle
dic = {(190,90,'捏脚'):"大表哥"}
ret = pickle.dumps(dic)   # 序列化结果 不是一个可读的字符串 而是一个bytes类型
print(ret)
print(pickle.loads(ret))dic = {(190,90,'捏脚'):"大表哥"}
f = open('大表哥2','wb')  # 使用pickle dump必须以+b的形式打开文件
pickle.dump(dic,f)
f.close()f = open('大表哥2','rb')#读取的时候也是以rb的形式读取
print(pickle.load(f))
f.close()

json 在写入多次dump的时候 不能对应执行多次load来取出数据,pickle可以json 如果要写入多个元素 可以先将元素dumps序列化,f.write(序列化+'\n')写入文件           读出元素的时候,应该先按行读文件,在使用loads将读出来的字符串转换成对应的数据类型
import pickle
# 关于写多行
dic1 = {"大表哥":(190,90,'捏脚')}
dic2 = {"2表哥":(190,90,'捏脚')}
dic3 = {"3表哥":(190,90,'捏脚')}
f = open('大表哥3','wb')
pickle.dump(dic1,f)
pickle.dump(dic2,f)
pickle.dump(dic3,f)
f.close()读写入的多行
f = open('大表哥3','rb')
while True:try:print(pickle.load(f))except EOFError:break

shelve模块

shelve也是python提供给我们的序列化工具,比pickle用起来更简单一些。
shelve只提供给我们一个open方法,是用key来访问的,使用起来和字典类似。

专有的序列化模块,只针对文件。


转载于:https://www.cnblogs.com/yzxing/p/8893390.html

4-20模块 序列化模块 hashlib模块相关推荐

  1. python hashlib模块安装_python hashlib 模块

    hashlib模块用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模 ...

  2. python hashlib模块_Python之hashlib模块的使用

    hashlib模块主要的作用: 加密保护消息安全,常用的加密算法如MD5,SHA1等. 1.查看可用的算法有哪些 #!/usr/bin/env python#-*- coding: utf-8 -*- ...

  3. python hashlib模块_python3 hashlib模块

    Python3 hashlib模块和hmac 模块(加密) hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha ...

  4. python-re模块-hashlib模块

    文章目录 一.re模块 二.hashlib模块 一.re模块 print(re.findall('alex','hahahah alex is alex is dsb')) #['alex', 'al ...

  5. 序列化模块和hashlib模块

    一:序列化模块 1,什么叫序列化? 序列化就是将原本的字典.列表等内容转换成一个字符串.python中的序列化模块有 json,pickle,shelve. ps:能存储在文件中的一定是字符串或者是字 ...

  6. Python学习笔记——基础篇【第六周】——hashlib模块

    常用模块之hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import ...

  7. 使用pickle模块序列化数据,优化代码

    使用pickle模块序列化数据,优化代码 pickle是Python标准库中的一个二进制序列化和反序列化库. 可以以二进制的形式将数据持久化保存到磁盘文件中.可以将数据和代码分离,提高代码可读性和优雅 ...

  8. 7.19 包 logging模块 hashlib模块 openpyxl模块 深浅拷贝

    包 包是什么 他是一系列文件的结合体,表现形式就是文件夹 包的本质还是模块 他通常会有__init__.py文件 我们首先回顾一下模块导入的过程 import module首次导入模块(.py文件) ...

  9. python学习笔记——hashlib模块

    上篇:https://blog.csdn.net/qq_42489308/article/details/89813895 hashlib Hash,译做"散列",也有直接音译为& ...

最新文章

  1. 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)
  2. Git之diff和status
  3. C++(15)--面向对象编程实践-欢乐斗地主(vector的花式输出)
  4. 基于 CODING 的 Spring Boot 持续集成项目
  5. sql sum 结果集不为零_sql语句分类练习题
  6. 【图像处理】MATLAB:空间滤波
  7. [转]献给2010年仍然单身的80后
  8. python 正则表达式学习-group
  9. JavaSE 简单介绍
  10. 这是你不曾见过的最全的ASO应用市场优化方式(上篇)
  11. 怎么把PDF文件转换成Word?三招教你轻松搞定
  12. 淘宝/天猫API:item_recommend-获取推荐商品列表
  13. HTML5 游戏开发快速提升
  14. 多可知识管理系统三大特色
  15. BDW01手把手系列01:BDW01开发板基于TencentOS Tiny之helloworld!
  16. WebStorm使用npm命令提示: ‘npm‘ 不是内部或外部命令,也不是可运行的程序的解决方法
  17. 计算机基础知识及列表操作
  18. 空间发表说说html页面实现原理,空间说说还能这样玩?jquery开发腾讯QQ空间说说发表效果...
  19. 美国总统拜登下令降半旗悼念枪击案遇难者
  20. 计算机屏幕尺寸不是全屏,为什么把电脑显示器分辨率调成1366X768后网页不能全屏显示呢?...

热门文章

  1. php和python哪个用了开发web好-web开发选择Python还是PHP好呢?
  2. python简单代码表白-如何正确使用Python进行表白
  3. 退出python命令行-退出python命令
  4. python语言入门p-python初学者怎么入门
  5. 大专python工资有多高-最新 | 2019年Python工程师的平均薪资是多少?
  6. python文字教程-Python在图片中添加文字的两种方法
  7. python做软件-用python做个翻译小软件吧~
  8. python按行读取txt文件-Python逐行读取txt文本,按符合分割词并逐行写入txt
  9. python和c学习-学习 Python与C相互调用
  10. python密码学编程pdf-Python密码学编程PDF电子书免费下载