json模塊
簡介
全稱"JavaScript Object Notation" (JavaScript對象表示法)它是一種基於文本,獨立於語言的輕量級數據交換格式
以易於讓人閱讀的文字為基礎,用來傳輸由屬性值或者序列性的值組成的數據對象(鍵值對)
特點
輕量級的文本數據交換格式
易於人類閱讀和編寫,同時也易於機器解析和生成
Web世界當中最理想的數據交換格式
語法規則
數據由鍵值對組成
鍵值對由逗號分隔
大括號里保存對象
中括號里保存數組(Pyton中的的列表或元組)
字符串必須用雙引號
API
json.dumps(obj) 將python數據轉化為json indent 實現縮進,ensure_ascii 是否用ascii解析
json.loads(s) 將json數據轉換為python的數據
json.dump(obj, fp) 轉換為json並保存到文件中
json.load(fp) 從文件中讀取json,並轉化為python數據
hashlib模塊
數據加密概念
對稱加密:數據加密解密使用相同的密鑰
非對稱加密:加密和解密用兩把不同的密鑰,公鑰用於加密數據,私鑰用於解密數據
單向加密:只能加密數據,而不能解密數據
特點
定長輸出:無論輸入的原始數據有多長,結果長度是相同的
抗修改性:輸入的微小改變,哪怕只有一個字符,也會引起結果的巨大改變
強碰撞性:很難找到兩段內容不同的數據,使他們產生的hash值一致,幾乎不可能
API
主要使用md5 其它:sha系列、blake系列
查詢所有的哈希算法 hashlib.algorithms_guaranteed
hashlib.new(算法名, data=b") 生成一個使用該算法的Hash對象,data為bytes類型
hashlib.算法名(data=b") 生成一個使用該算法的Hash對象,data為bytes類型
Hash對象.digest() 返回Hash算法計算得到的值(bytes類型)
Hash對象.hexdigest() 返回Hash算法計算得到的值(str類型)
Hash對象.update(arg=None) 更新Hash對象
base64模塊
簡介
base64是一種用64個字符來表示任意二進制數據的方法(將二進制數據編碼成ASCII字符)
使用了A-Z、a-z、0-9、 + 、 / 這64個字符
特點
用來將非ASCII字符的數據轉換成ASCII字符的一種方法
常用於對URL的編碼
可以將不可打印的二進制數據轉化為可打印的字符串
API
base64.b64encode(s) 對二進制數據進行base64編碼
base64.b64decode(s) 對通過base64編碼的數據進行解碼
Base64編碼后的數據可能會含有 + / 兩個符號,如果編碼后的數據用於URL或文件的系統路徑中,就可能導致Bug,所以base模塊提供了專門編碼url的方法
base64.urlsafe_ b64encode(s) 對URL進行base64編碼
base64.urlsafe_ b64decode(s) 對URL進行base64解碼