一、urllib相关
1.urlencode
作用:python字典->查询字符串
导包:from urllib.parse import urlencode
举例:
# 1.将python字典转化成一个查询字符串
data = {
'id': 1,
'name': 'Jerry'
}
from urllib.parse import urlencode
res_qs = urlencode(data)
print(res_qs)
结果:id=1&name=Jerry
2.parse_qs
作用:查询字符串->python字典
导包:from urllib.parse import parse_qs
举例:
# 2.将查询字符串转化为python字典
query_str = 'a=17&b=18&c=19&c=20'
from urllib.parse import parse_qs
res_dic = parse_qs(query_str) # 注意:key对应value是一个list
print(res_dic)
结果:{'a': ['17'], 'b': ['18'], 'c': ['19', '20']}
3.urlopen
作用:发送网络请求
导包:from urllib.request import urlopen
举例:
# 3. 发送网络请求
from urllib.request import urlopen
req_url = 'http://www.baidu.com'
# 获取响应对象
response = urlopen(req_url)
# 获取响应数据
res_bytes = response.read() # bytes
res_str = res_bytes.decode() # str
print(res_str)
二、itsdangerous加密、解密
1.安装&导包
安装: pip install itsdangerous
导包: from itsdangerous import TimedJSONWebSignatureSerializer as TJWSSerializer
2.dumps加密
举例:
# 1.加密
# 假设密钥:123abc
data = {
'openid': 'ADSAGASGDFATGSD345'
}
serializer = TJWSSerializer(secret_key='123abc', expires_in=60 * 60)
res_bytes = serializer.dumps(data) # bytes
res_str = res_bytes.decode() # str
print(res_str)
结果:
eyJhbGciOiJIUzI1NiIsImlhdCI6MTUzNTY5MDIyOCwiZXhwIjoxNTM1NjkzODI4fQ.eyJvcGVuaWQiOiJBRFNBR0FTR0RGQVRHU0QzNDUifQ.5FbLlR_ig5xagSu9dtJ33y1SYFmCLM3f2Ep2t-OEMIo
3.loads解密
错误异常包:from itsdangerous import BadData
举例:
# 2.解密(保证与加密时密码一致)
data = 'eyJhbGciOiJIUzI1NiIsImlhdCI6MTUzNTY5MDIyOCwiZXhwIjoxNTM1NjkzODI4fQ.eyJvcGVuaWQiOiJBRFNBR0FTR0RGQVRHU0QzNDUifQ.5FbLlR_ig5xagSu9dtJ33y1SYFmCLM3f2Ep2t-OEMIo'
serializer = TJWSSerializer(secret_key='123abc', expires_in=60 * 60)
try:
res_dict = serializer.loads(data)
except BadData as e:
print(e)
else:
print(res_dict)
结果:{'openid': 'ADSAGASGDFATGSD345'}