在Python中打包/解压缩复杂数据

时间:2013-05-12 21:30:12

标签: python pack unpack

我正在尝试使用自定义协议使用嵌入式设备发送/接收数据。 struct.pack()和unpack()看起来像是在完成这项工作,但fmt参数似乎不够灵活,无法处理可变长度的数据数组。

示例:设备发送[事件报告] [事件数]([事件类型] [事件值],[事件类型] [事件值],...)

其中:

  • 事件报告(无符号8位)
  • 事件数量(无符号16位)
  • 事件类型(无符号8位)
  • 事件值(带符号的16位)

将这些数据解码为Python的最佳方法是什么?另外,我如何编码发送到设备的类似数据结构?

1 个答案:

答案 0 :(得分:3)

考虑使用python-bitstring来实现二进制协议。它非常灵活且易于使用。