【问题标题】:How to unpack double digit hex file with python msgPack?如何使用 python msgPack 解压两位数的 hex 文件?
【发布时间】:2020-03-21 11:22:47
【问题描述】:

我有一个包含一些数据的文本文件,其中有一个用 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)

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

非常感谢您的关注

【问题讨论】:

    标签: python json msgpack


    【解决方案1】:

    我最终找到了解决办法:

    msgpack.unpackb(bytes.fromhex(hexstring)

    其中 hexstring 是从文件中读取的字符串。

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      • 2011-12-10
      • 2015-09-10
      相关资源
      最近更新 更多