Python 十六进制转Base64_马克的Python学习笔记#数据编码与处理 4
同關系型數據庫進行交互
在Python中,表達行數據的表尊方式就是采用元組序列。當數據以這種形式呈現的時候,通過Python標準API來同關系型數據庫進行交互相對來說就顯得很直接了。這個API的要點就是數據庫上的所有操作都通過SQL查詢來實現,每一行輸入或輸出數據都由一個元組來表示。
我們可以使用sqlite3模塊,如果正在使用一個不同的數據庫,就需要安裝一個第三方的模塊來支持。但是,底層的編程接口即使不完全的話也差不多事一致的
第一步就是連接數據庫。一般來說,要調用一個connect()函數,提供類似數據庫名稱,主機名,用戶名和密碼這樣的參數以及一些其它需要的細節,舉個例子:
>>> 然后我們創建一個游標
>>> 要在數據中插入行列,可以這樣:
>>> 要執行查詢操作就可以這樣:
>>> 簡單地說,同數據庫的交互其實是一件非常直截了當的事情。只要組成SQL語句然后將它們傳遞給底層的模塊就可以更行數據庫或者取出數據了。但有些時候我們會遇到一些比較棘手的問題,比如我們需要將數據庫中的數據映射到Python的類型中。對于像日期這樣的條目,最常見的就是使用datetime模塊中的datetime實例或者time模塊里的時間戳
對于數值類的數據,尤其是涉及小數的金融類數據,這些數字可以用decimal模塊中的Decimal實例來表示
注意,我們絕對不應該用Python的字符串格式化操作符或者.format()方法來創建SQL語句的字符串,這樣很容易遭受SQL注入攻擊
對于簡單地將數據從數據庫表項中取出和輸入,使用數據庫API就完全足夠了。如果要處理更加復雜的任務,那么使用一種更高層次的接口就顯得非常有意義了
編碼和解碼16進制的數字
我們需要編碼或解碼由16進制組成的原始字符串,我們可以使用binascii模塊:
>>> 當然,你用base64模塊也不是不行:
>>> 對于大部分情況來說,采用上面給出的函數對16進制數進行轉換歐式簡單直接的,而這兩種技術的主要區別就在于大寫轉換。base64的方法只能對大寫形式的16進制數進行操作,而binascii模塊能夠處理任意一種情況。
注意:當解碼16進制的時候,b16decode()和a2b_hex()函數可接受字節串或者是Unicode字符串作為輸入。但是,這些字符串中必須且只能包含ASCII編碼的十六進制數字
Base64的編碼和解碼
用b64encode()和b64decode()這兩個函數就好
>>> Base64編碼只能用在面向字節的數據上,比如說字節串和字節數組,此外,編碼過程的輸出總是一個字節串,如果將Base64編碼的數據同Unicode文本混在一起,那么可能需要多個解碼步驟。
參考書目:
《Python CookBook》作者:【美】 David Beazley, Brian K. Jones
Github地址:
yidao620c/python3-cookbook?github.com總結
以上是生活随笔為你收集整理的Python 十六进制转Base64_马克的Python学习笔记#数据编码与处理 4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快递30斤多少钱啊?
- 下一篇: 歇后语仇人相见下一句是什么呢?