我有一个应用程序,它返回一个bytesobject,它由无符号短整数、有符号短整数、一些字符和一个浮点组成。结构总是一样的。相同的类型在de bytes项目中始终处于相同的位置。 我想在各种变量中解包bytes对象,我可以使用Python模块“struct”来解包,然后使用解包方法。 但是,似乎有一种更好的方法可以通过Python cstruct模块实现这一点: https://github.com/andreax79/python-cstruct
我已经阅读了几次文档并做了一些测试,但我不知道它应该如何工作。是的,我可以创建类并将结构定义为字符串。但我不明白如何访问已定义结构的变量
假设我有一个字节对象响应=b'\x01\x02\x03\x04' int包含2个短int
import cstruct
response = b'\x01\x02\x03\x04'
print (type (response), response)
class test(cstruct.CStruct):
__byte_order__ = cstruct.BIG_ENDIAN
__struct__ = """
unsigned short var1;
unsigned short var2;
"""
t = test(response)
print (type(t), t)
结果是
<class 'bytes'> b'\x01\x02\x03\x04'
<class '__main__.test'> test(var1=258, var2=772)
好的,到目前为止还不错。 所以t是一个类“\uuuu main\uuuuu.test”,t=test的值(var1=258,var2=772)
现在我可以访问组件t.var1和t.var2
有没有一种聪明的方法将组件映射到一个列表,或者更好地映射到一个字典
目前没有回答
相关问题 更多 >
编程相关推荐