Я использую Python 2.7 для получения данных:
data = self.socket.recv(4096)
Как мне получить первый неподписанный шорт из данных? Данные выглядят так:
>>> print repr(data) '\x00\x053B2D4C24\x00\x00\x01\x00...'
Если под беззнаковым коротким вы подразумеваете два байта, просто выполните:
data[:2]
Если вы знаете и ожидаете, что определенный объем данных будет анализироваться, вы можете использовать struct библиотека.
struct
Старый вопрос, но я подумал, что выложу лучшее решение:
value, = struct.unpack('H', data[:2])
Обратите внимание на использование , для правильной распаковки возвращаемого 1-го кортежа.
,
Вот что я придумал:
s = struct.Struct('H') num = int('0x' + ''.join(x for x in repr(packet[:s.size]) if x.isdigit()), 0)