【问题标题】:Python 3 Struct unpack int and bytearrayPython 3 结构解包 int 和 bytearray
【发布时间】:2015-05-05 14:02:41
【问题描述】:

我正在使用 Python 3,通过 mqtt 接收字节数组。第一个 4 字节是整数,即 unix 时间戳。其余数据是我要转换为 base 64 字符串的字节。如何分离整数和数据?

【问题讨论】:

    标签: python python-3.x struct bytearray


    【解决方案1】:

    你可以对数组进行切片:

    timestamp, base64_data = ba_object[:4], ba_object[4:]
    

    时间戳可以用int.from_bytes() class method提取,base64编码的数据可以用base64.b64decode()处理:

    import base64
    
    timestamp = int.from_bytes(ba_object[:4], byteorder='big')
    data = base64.b64decode(ba_object[4:])
    

    【讨论】:

    • 如果我做 messagebyte = bytearray(msg.payload) messagebyte is ba_object?
    • @user903772: 是的,ba_object 在这里代表字节数组对象;使用任何名称。
    • 我不需要使用结构体?
    • 对于 base64 数据和一个整数,我不会使用 struct。
    • 数据不应该是:data = base64.b64decode(ba_object[5:])?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多