получить строку с символами - PullRequest
1 голос
/ 02 июня 2010

Я совершенно новый в Python.

Я получаю (через pyserial) строку со значениями данных. Как я могу проанализировать эти данные для конкретной структуры данных?

Я знаю, что

 0-1 byte : id
 2-5 byte : time1 =>but little endian (lsb first)
 6-9 byte : time2 =>but little endian (lsb first)

и я ищу функцию:

def parse_data(string):
  data={}
  data['id'] = ??
  data['time1'] = ??
  data['time2'] = ??
  return data

спасибо

Ответы [ 2 ]

2 голосов
/ 02 июня 2010
import struct
def parse_data(string):
    return dict(zip(['id','time','time2'],struct.unpack("<HII", string)))
2 голосов
/ 02 июня 2010

Структурный модуль должен быть именно тем, что вы ищете.

import struct
# ...
data['id'], data['time1'], data['time2'] = struct.unpack("<HII", string)

В строке формата < означает «интерпретировать все как младший и не использовать собственное выравнивание», H означает «unsigned short» и I означает «unsigned int»

...