Python Glossary English

все 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Сообщить о неточности