Разница между Python 2 и Python 3 при работе с двоичными преобразованиями заключается в обработке строк. 1
В Python 2 тип str использовался для двух разных видов значений — текста и байтов, в то время как в Python 3 это отдельные и несовместимые типы. 1 Поэтому до Python 3 набор байтов можно было рассматривать как строку и работать с ней, а теперь для этого есть отдельный тип данных — bytes. 1
Также в Python 3 индексирование байтов приводит к выводу int, в то время как в Python 2 индексирование в размере одного результата приводит к объекту длиной 1 байт. 5
Ещё одно различие заключается в том, что в Python 3 все строки по умолчанию являются Unicode-строками, в то время как в Python 2 существовали отдельные типы для Unicode-строк и обычных строк. 3