尝试msgpack.unpack
时出现以下错误:
ExtraData: unpack(b) received extra data.
我的部分代码:
r1=requests.get('http://localhost:3000/fs?path='+r.json()['object'])
unp = msgpack.unpackb(r1.content)
有人可以帮忙吗?
答案 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
,你只能返回一个对象,它的块读取器消耗的数据流比它应该有的多,而且你丢失了数据。