1,加密模块 hashlib()
以常见的算法MD5为例,计算出一个字符串的MD5值:
import hashlib md5 = hashlib.md5() md5.update('sixgod'.encode('utf-8')) print(md5.hexdigest())
结果为:765471714a1a998d47b1072e29d56730
还可以根据一个随机数进行加密,如:
import hashlib md5 = hashlib.md5("123456".encode("utf-8")) md5.update('sixgod'.encode('utf-8')) print(md5.hexdigest())
这里给的是123456,还可以给复杂的。
2,StringIO, BytesIO
1.StringIO
如果频繁的进行读写操作,可以先在内存中进行,StringIO 顾名思义就是在内存中以 io 流的方式读写 str。
要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:
from io import StringIO stringIO = StringIO() stringIO.write("hello wrold\n") stringIO.write("hello\n")
此时是没有输出的,getvalue()方法用于获得写入后的str,truncate(0) 用于清除内容。
from io import StringIO stringIO = StringIO() stringIO.write("hello wrold\n") stringIO.write("hello\n") print(stringIO.getvalue())#读出
结果为:hello wrold
hello
2.BytesIO
StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。
BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:
from io import StringIO,BytesIO bytesIO = BytesIO() bytesIO.write("123".encode("utf-8")) print(bytesIO.getvalue())
结果为:b'123'
可以看见是以b为开头的。
3.json模块
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码。
dumps和loads 带s的就是处理字符串dump和load 不带s的就是处理文件的
1.loads,dumps
有一个字符串test,跟字典很像,但是并不能直接获取a的值,此时我们就可以进行转换。
import json test = '[{"a": 1, "aa": 11, "aaa": 111}, {"b": 2, "bb": 22, "bbb": 222}' print(type(test)) newTest = json.loads(test) print(type(newTest)) print(newTest[0]["a"])
结果为:<class 'str'> <class 'list'> 1
还可以用dumps再进行转回:
xxx = json.dumps(newTest) print(type(xxx))
结果为:<class 'str'>
2.load,dump
dump(s, f)
把json字符串s直接写入到文件中去:
test = {"a": 1, "b": 2} with codecs.open("1.txt", "w") as f: json.dump(test, f)
M = load(f)
直接把文件内容取出来,给M,M类unicode类型
with codecs.open("1.txt","r") as f: a = json.load(f) print(a)
结果为:{'b': 2, 'a': 1}