从python中的响应中解压缩msgpack

时间:2017-03-20 15:15:53

标签: python response msgpack

尝试msgpack.unpack时出现以下错误:

ExtraData: unpack(b) received extra data.

我的部分代码:

r1=requests.get('http://localhost:3000/fs?path='+r.json()['object'])
unp = msgpack.unpackb(r1.content)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

博士对此并不十分清楚,但msgpack.unpackb是一次性的""" unpacker - 你不能给它一个更大的流,里面有额外的数据。我假设您正在获取多个msgpack对象,您可以使用{/ 1}}来读取它们,如

msgpack.Unpacker

这样做的原因是r1=requests.get('http://localhost:3000/fs?path='+r.json()['object']) for unp in msgpack.unpackb(r1.content): do something... 反序列化器以块的形式读取数据以提高效率。对于msgpack,你只能返回一个对象,它的块读取器消耗的数据流比它应该有的多,而且你丢失了数据。