Распаковка 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]
Обратите внимание, что байты затеняют байты класса.