Ответ 1
Строка уже "декодирована", поэтому класс str не имеет функции "декодирования". Таким образом:
AttributeError: type object 'str' has no attribute 'decode'
Если вы хотите декодировать массив байтов и превратить его в строковый вызов:
the_thing.decode(encoding)
Если вы хотите закодировать строку (превратить ее в массив байтов), вызовите:
the_string.encode(encoding)
С точки зрения базы 64 вещи: Использование 'base64' в качестве значения для кодирования выше дает ошибку:
LookupError: unknown encoding: base64
Откройте консоль и введите следующее:
import base64
help(base64)
Вы увидите, что base64 имеет две очень удобные функции: b64decode и b64encode. b64 decode возвращает массив байтов, а b64encode требует массив байтов.
Чтобы преобразовать строку в представление base64, вам сначала нужно преобразовать ее в байты. Мне нравится utf-8, но используйте любую кодировку, в которой вы нуждаетесь...
import base64
def stringToBase64(s):
return base64.b64encode(s.encode('utf-8'))
def base64ToString(b):
return base64.b64decode(b).decode('utf-8')