Как распаковать двойной di git hex файл с python msgPack? - PullRequest
0 голосов
/ 21 марта 2020

У меня есть текстовый файл, содержащий некоторые данные, среди которых есть JSON, упакованный с msgPack.

Я могу распаковать на 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)

I Я вполне уверен, что это какая-то проблема с кодированием, но мне не повезло, погоду в документах или попробую.

Большое спасибо за внимание

1 Ответ

0 голосов
/ 10 апреля 2020

Я нашел решение в конце:

msgpack.unpackb(bytes.fromhex(hexstring)

, где hexstring - строка, считанная из файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...