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}