如何使用python msgPack解包两位数十六进制文件?

2024-09-24 02:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含一些数据的文本文件,在这些数据中有一个用msgPack打包的JSON

我能够在https://toolslick.com/conversion/data/messagepack-to-json上解包,但无法在python中使用它

到目前为止,我正在努力做到以下几点:

def parseAndSplit(path):
    with open(path) as f:
        fContent = f.read()
        for subf in fContent.split('Payload: '):
            '''for ssubf in subf.split('DataChunkMsg'):
                print(ssubf)'''
        return subf.split('DataChunkMsg')[0]

fpath = "path/to/file"

t = parseAndSplit(fpath)
l = t.split("-")
s = ""
for i in l:
    s=s+i
print(s)
a = msgpack.unpackb(bytes(s,"UTF-8"), raw=False)
print(a) 

但结果是

import msgpack

Traceback (most recent call last):
  File "C:/Users/Marco/PycharmProjects/codeTest/msgPack.py", line 19, in <module>
    a = msgpack.unpackb(bytes(s,"UTF-8"), raw=False)
  File "msgpack\_unpacker.pyx", line 202, in msgpack._cmsgpack.unpackb
msgpack.exceptions.ExtraData: unpack(b) received extra data.

9392AA6E722D736230322D3032AC4F444D44617...(string goes on)

我很确定这是某种编码问题,但不管是在文档中还是通过尝试,我都没有运气

非常感谢您的关注


Tags: to数据pathinfordatamsgpacksplit