Python学习_13 内置模块(二)

Python学习_13 内置模块(二)
2018-04-26
1、hashlib模块
hashlib是个专门提供hash算法的库,支持openssl库提供的所有算法,包括md5, sha1, sha224, sha256, sha384, sha512,这里主要学习md5
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法
加密例子如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2018/4/27 10:23
# @Auther: xiexiaolong
# @File: demon1.PY
import hashlib
m = hashlib.md5( "sdfwfg" .encode( "utf-8" ))
src = bytes ( "xie" , encoding = "utf-8" )
m.update(src)
print (m.hexdigest())
结果:
D:\python\venv\Scripts\python.exe D:/python/0427/demon1.py
8bcb24c8b1421bb124473b5f5d0dcb14

Process finished with exit code 0
分析: m = hashlib.md5( "sdfwfg" .encode( "utf-8" ))中定义了一个随机码,指定字符集编码; src = bytes ( "xie" , encoding = "utf-8" ) python3中必须要把str类型转换成二进制类型再加密
2、StringIO模块和BytesIO模块
a>StringIO
在平时开发过程中,有些时候我们可能不需要写在文件中,我们可以直接通过StringIO模块直接写入到系统内存中,如果不用了,可以直接清除就可以了。StringIO主要是用来在内存中写入字符串的,及字符串的缓存。他的接口和文件操作的接口是一致的,基本所有关于文件的方法都可以
s.getvalue()   此函数没有参数,无论读写位置在哪里,都能够返回对象s中的所有数据。
s.truncate(0)    参数为0,表示清空所有写入的内容
s.flush()     刷新内部缓冲区。
b>BytesIO模块
StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。
用法如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2018/4/27 10:23
# @Auther: xiexiaolong
# @File: demon1.PY
from io import StringIO,BytesIO
stringIO = StringIO()
stringIO.write( "hello word \n " )
stringIO.write( "hello xiexiaolong" )
print (stringIO.getvalue())
stringIO.truncate( 0 )
print ( "##" * 10 )
print (stringIO.getvalue())
结果:
D:\python\venv\Scripts\python.exe D:/python/0427/demon1.py
hello word
hello xiexiaolong
####################


Process finished with exit code 0
分析:因为 StringIO 是一个类,所以使用之前要实例化;当调用stringIO.truncate(0)之后,内存中被清空了,所以再次打印是空的
3、json模块
Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中。
最长用的几种方式:
dumps和loads        带s的就是字符串,dumps 将Python对象编码成json字符串;loads把json字符串转换成python对象,很多东西给我们的就是一个json字符串,我们必须先转换成python对象才可以使用
dump和load        不带s的就是处理文件的
dumps例子:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2018/4/27 10:23
# @Auther: xiexiaolong
# @File: demon1.PY
import json
test1 = [{ "a" : 1 , "aa" : 11 , "aaa" : 111 },{ "b" : 2 , "bb" : 22 , "bbb" : 222 },{ "cc" : 33 }]
test2 = '''{'aaa': 111, 'bbb': 222}'''
newtest1 = json.dumps(test1)
print ( type (newtest1))
print (newtest1)
结果:
D:\python\venv\Scripts\python.exe D:/python/0427/demon1.py
<class 'str'>
[{"a": 1, "aa": 11, "aaa": 111}, {"b": 2, "bb": 22, "bbb": 222}, {"cc": 33}]

Process finished with exit code 0
分析:把Python列表转换成json字符串
loads例子:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2018/4/27 10:23
# @Auther: xiexiaolong
# @File: demon1.PY
import json
test1 = '[{"a": 1, "aa": 11, "aaa": 111},{"b": 2, "bb": 22, "bbb": 222},{"cc" : 33}]'
test2 = '''{'aaa': 111, 'bbb': 222}'''
newtest1 = json.loads(test1)
print ( type (newtest1))
print (newtest1[ 0 ][ "a" ])
结果:
D:\python\venv\Scripts\python.exe D:/python/0427/demon1.py
<class 'list'>
1

Process finished with exit code 0
分析:loads把字符串转换成Python格式
4、requests
requests模块是一个用户网络访问的模块,首先要手工安装
用命令pip install requests   (python3已经有pip,python2要手工安装pip )

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2018/4/27 10:23
# @Auther: xiexiaolong
# @File: demon1.PY
import requests
import json

session = requests.session()
r = session.get(url)
result = json.loads(r.text)

print ( type (r))
print (result[ "errCode" ])
结果:
"C:\Program Files\Python36\python.exe" D:/python/0427/demon1.py
<class 'requests.models.Response'>
0

Process finished with exit code 0
分析:调用模块requests模块的函数,获取到url、返回值,这个值是一个字符串,用 json.loads ​方法转换成python形式再输出


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值