Распаковка Struct Я работаю только в Python 2, и мне нужно понять, как это сделать в Python 3

Я пытаюсь запустить этот код в Python 3, он работает только в Python 2

struct.unpack('f', "".join(map(chr, bytes)))[0]

def get_float(data, index):
    bytes = data[4*index:(index+1)*4]
    return struct.unpack('f', "".join(map(chr, bytes)))[0]

Я получаю эту ошибку

Ошибка типа: требуется объект, подобный байту, а не 'str'

1 ответ

Вы можете попробовать следующее:

struct.unpack('f', b"".join(map(chr, bytes)))[0]

ab "" - это строка байтов. Поскольку для распаковки нужны байты, вам необходимо использовать метод соединения байтовой строки.

РЕДАКТИРОВАТЬ: вам не нужно отображать свои байты в char. Ты можешь использовать:

struct.unpack('f', bytes)[0]

Обратите внимание, что байты затеняют байты класса.

Другие вопросы по тегам