首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解包

无法解包
EN

Stack Overflow用户
提问于 2021-01-12 14:57:07
回答 1查看 48关注 0票数 0

在解析BLE数据包时,我得到了下面的错误。有什么办法解决这个问题吗?

分组b'\x04>+\x02\x01\x03\x01\xd7\xd3A\xc9\xae\xf5\x1f\x02\x01\x06\x03\x03\xaa\xfe\x17\x16\xaa\xfe\x00\xd8\x8b\x9c\xc7<:\xe7G\xefe\xbc\x00\x00\x00\x00\x15\xd1\x00\x00\xaf‘

代码语言:javascript
复制
Traceback (most recent call last):
File "BluetoothWiliot.py", line 95, in <module>
    dataString = parse_events(sock, 100)
File "BluetoothWiliot.py", line 47, in parse_events
    print(struct.unpack("B", bytes(pkt[3])))
**struct.error: unpack requires a buffer of 1 bytes**


Traceback (most recent call last):
File "BluetoothWiliot.py", line 95, in <module>
    dataString = parse_events(sock, 100)
File "BluetoothWiliot.py", line 47, in parse_events
    print(struct.unpack("B", pkt[3]))

**TypeError: a bytes-like object is required, not 'int'**
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 16:23:48

int.from_bytes通常是我在这些情况下使用的函数,但是有许多选项:

代码语言:javascript
复制
$ python3
Python 3.7.3 (default, Jul 25 2020, 13:03:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> pkt = b'\x04>+\x02\x01\x03\x01\xd7\xd3A\xc9\xae\xf5\x1f\x02\x01\x06\x03\x03\xaa\xfe\x17\x16\xaa\xfe\x00\xd8\x8b\x9c\xc7<:\xe7G\xefe\xbc\x00\x00\x00\x00\x15\xd1\x00\x00\xaf'
>>> pkt[3]
2
>>> int.from_bytes([pkt[3]], byteorder='little', signed=False)
2
>>> struct.unpack_from('B', pkt, 3)
(2,)
>>> struct.unpack('B',pkt[3:3+1])
(2,)
>>> struct.unpack('B', bytes([pkt[3]]))
(2,)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65686421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档