Я хочу "распаковать" ИЛИ десериализовать отформатированные данные, которые выводятся из функции python struct.pack (). Данные отправляются по сети на другую платформу, которая использует только Java.
Функция Python, которая отправляет данные по сети, использует этот формат:
def formatOutputMsg_Array(self, mac, arr):
mac_bin = mac.encode("ascii");
mac_len = len(mac_bin);
arr_bin = array.array('d', arr).tobytes();
arr_len = len(arr_bin);
m = struct.pack('qqd%ss%ss' % (mac_len, arr_len), mac_len, arr_len, time.time(), mac_bin, arr_bin);
return m
Вот документы для структуры python (см. Раздел 7.3.2.2. Символы формата):
https://docs.python.org/2/library/struct.html
1) Вопрос в том, что означает «qqd% ss% ss» ???
Означает ли это -> long, long, double, char, char, [], char [], char, char [], char []
2) почему по модулю "%" здесь используется кортеж 'qqd% ss% ss' % (mac_len, arr_len) ?