用Python解码msgpack api响应

问题描述

我正在做一个小型项目,以获取其中一种游戏api的六格网格游戏的地图。这最主要的部分目前正在按预期工作,但是问题是,api的响应是作为msgpack的映射。到目前为止,我还没有使用过它,但是我正在尝试用python对其进行解码。响应的原始内容如下:

cd\xfc\x1aA\x1e\xcd\x01-\x00\x01\x96\x00\x00\x92\xd1\xfe\x8d\xd0\xd6\x00...

当我像这样使用python msgpack lib时:

msgpack.unpackb(res.content,raw=False)

输出看起来像这样:

[0,207,[90,284],[]]]]]],[2,[0,314,[91,281],...

如果我像这样将raw = False切换为True msgpack.unpackb(res.content,raw=True)

输出看起来像这样

[]]]]]],[[1,212,282],[]]]],None]] ...

如您所见,第二个输出缺少[90,284]周围的第一个输出,因为它以一些方括号[[]]]]]开头,然后是坐标[91,281]的信息,这是第二个输出第一输出。我只是不知道如何验证文件是否已正确解码,但看起来却不像这样。

我的问题是,是否还有其他方法可以解码对字符串或json或我可以使用的任何其他对象的响应的转义十六进制格式。

编辑:通过邮递员查询api时得到的响应据说是4.43 MB,但是当我将res.content保存为文件时,它的响应只有1 MB。我不知道这种“损失”是从哪里来的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)