【发布时间】:2021-05-03 19:52:51
【问题描述】:
我正在尝试使用发送到插入休息端点的请求将 msgpack 编码值发送到服务器,该端点将序列化字节流作为输入。但似乎值没有正确到达那里,因为我没有看到表中插入任何值。我以前从未尝试过,所以请原谅我的无知。这就是我正在做的事情:
buf = io.BytesIO()
for rows in dataframe:
buf.write(msgpack.packb(rows))
response = requests.post(url, data=buf, verify=False)
try:
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print('Error fetching response using requests')
【问题讨论】:
-
如果我没记错的话,数据需要是可迭代的,才能由 requests.post 流式传输。您可能需要改为将生成器函数写入 buf 并将此生成器传递给 requests.post。在这种情况下,甚至可能不需要 buf。
-
buf.seek(0) 是这样做的方式,因为 buf 总是指向缓冲区的末尾。而且我还发现我必须序列化每个值而不是字典列表,这就是插入失败的原因。
标签: python python-requests msgpack bytesio