我在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
感谢
答案 0 :(得分:2)
struct module应该正是您正在寻找的。 p>
import struct
# ...
data['id'], data['time1'], data['time2'] = struct.unpack("<HII", string)
在格式字符串中,<
表示“将所有内容解释为小端,并且不使用本机对齐”,H
表示“unsigned short”,I
表示“unsigned int” “
答案 1 :(得分:2)
import struct
def parse_data(string):
return dict(zip(['id','time','time2'],struct.unpack("<HII", string)))