gpt4 book ai didi

python - 在 Python 中解压字节值

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:09 24 4
gpt4 key购买 nike

我正在尝试解压以下数据,但似乎无法弄清楚。这是从设备读取仪表值的数字混音器返回的字节数据。

文档建议返回的 blob 将被格式化为:

  • int1 – blob 长度(以字节为单位),32 位整数大端
  • int2 – “nativefloats”的数量,32 位整数小端
  • ‘nativefloat’ – 计量值,32 位浮点小尾数
  • ‘nativefloat’
  • …(此特定消息中总共应有 70 个“nativefloat”值)

执行打印(数据)会显示设备实时数据中的以下 blob:

['F\x00\x00\x00\xd4\xc6\x9a7\xce-\xee8G\xa6=6\x88\x80X7\x83\x99#7\xd1\xd3A7\x88\x80X7\x8cM\x9d7\x9b\xeeK7\xeb,\x847\xd4\xc6\x9a7*q\x8a7dlN7=\xfcU7\xd1\xde\x9f7\xdc\xa4\x817q=\x937b\x9cg7\x1d\xba77\x9b\xeeK7x\xb8q7\x1d^\x807\xe1P?7\x90H\xba7\x1d^\x807o\x86]7\xf8\xf1P7\x88\x80X7\xc5\xa8\xa87:\xdcF7\xdc\x1fe7TaI7\x01\t\xb87.\xebW7\xca\xf3a7\xd6\xef[7=\xfbQ7\xe8\xfa\x957n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54\x9d\xa2\x867n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54\x1e\x93\x867n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54n\xbb\xd54']

我尝试了 struct.unpack 的几种变体,但收到“结构格式中的错误字符”,并且文档中没有任何示例讨论与此类似的布局。我还尝试提取字节并使用在线转换器转换它们,但无法获得任何类似于预期值的内容。我确定有一些简单的事情是我误解的?

最佳答案

上面的示例中缺少

int1 。它以小端字节序的 70 开始,然后以 70 个 float 继续。所以你可以用以下命令解压它:

int2 = int(*unpack('<i', data[:4]))
floats = unpack('<' + int2*'f', data[4:])

如果开头有一个int1(如提供的规范中所述),那么您可以使用

int1 = int(*unpack('>i', data[:4]))
int2 = int(*unpack('<i', data[4:8]))
floats = unpack('<' + int2*'f', data[8:])

关于python - 在 Python 中解压字节值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58152487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com