Зачем мне нужно 'b' для кодирования строки с помощью Base64?

Следуя этому примеру Python , я кодирую строку как Base64 с помощью:

>>> import base64
>>> encoded = base64.b64encode(b'data to be encoded')
>>> encoded
b'ZGF0YSB0byBiZSBlbmNvZGVk'

Но, если я оставлю ведущий b :

>>> encoded = base64.b64encode('data to be encoded')

I получите следующую ошибку:

Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Python32\lib\base64.py", line 56, in b64encode
   raise TypeError("expected bytes, not %s" % s.__class__.__name__)
   TypeError: expected bytes, not str

Почему это?

228
задан martineau 9 May 2019 в 11:46
поделиться