все Python 3base64функция
base64.b64decode()
Base64
Декодирует Base64 обратно в байты. Принимает bytes или ASCII-строку; по умолчанию молча выбрасывает посторонние символы.
Синтаксис
base64.b64decode(s, altchars=None, validate=False)
Без validate=True мусор во входе (пробелы, '!', переводы строк) просто отбрасывается, и испорченные данные декодируются «успешно». Хуже с URL-safe строкой: '-' и '_' тоже выкидываются, и вы получите другие байты без всякой ошибки — для неё нужен urlsafe_b64decode. Неверное выравнивание '=' даёт binascii.Error, подкласс ValueError. Результат — bytes, текст из него получают .decode('utf-8').
Примеры
import base64
print(base64.b64decode('0L/RgNC40LLQtdGC').decode('utf-8')) # → привет
print(base64.b64decode(b'aG!!k/P g==')) # → b'hi?>' — мусор выброшен молча
import base64
import binascii
try:
base64.b64decode(b'aG!!k/Pg==', validate=True)
except binascii.Error as e:
print(type(e).__name__, isinstance(e, ValueError)) # → Error True
import base64
print(base64.b64decode(b'ab-_cd==')) # → b'i\xb7\x1d' — '-' и '_' выброшены, данные другие
print(base64.urlsafe_b64decode(b'ab-_cd==')) # → b'i\xbf\xbfq'
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности