2014-02-14 79 views
3

我正在使用Python 2.7來解碼base64數據,我不明白爲什麼base64.b64decode返回一個字符串?我如何獲得解碼的二進制數據?我會認爲base64.b64decode會返回一個字節數組。這裏是python文檔的base64鏈接: http://docs.python.org/2/library/base64.htmlPython 2.7 base64.b64decode爲什麼它返回一個字符串而不是一個字節數組?

感謝您的幫助!

+2

在Python 2中沒有這樣的東西作爲'byte'類型。它是在Python 3中引入的。您只有'str'和'unicode'類型在Python 2. – Carpetsmoker

回答

4

2.x a 字節串二進制數據,以大部分可打印的形式表示。它不需要額外的模塊來支持。

4

bytearray類型用於我們想要的可變字符串或字節數組。

b64decode()函數使用STR類型是用於不可改變字符串或字節數組在Python 2.7。

而且不需要易變性,另一個原因是b64decode()沒有考慮返回的ByteArray是b64decode()比的ByteArray老得多 - 當你的工具箱中的唯一工具是一個海峽,所有問題開始看起來像str問題;-)

+0

我剛開始使用這個模塊,所以我缺乏經驗可能會解釋爲什麼這不是一個好問題。所以,如果我採用一些二進制數據並將其編碼爲base64,那麼當我解碼時,我認爲它應該是一個字節數組。當我嘗試以字符串的形式處理數據時,我遇到了一些我正在處理的Python代碼的問題,我收到了一些例外情況。所以在我解碼數據之後,接下來我要做的就是將結果轉換成一個字節數組。爲什麼有人想要一個字符串?如果是這樣的話,數據不需要首先被base64編碼。 –

相關問題