我有一个带有API调用的Tornado Web服务,它应该接受一个图像并将它的某些部分返回给客户端。
我已经设法将单个图像发送回客户端以进行不同的API调用,如下所示:
byteIO = io.BytesIO()
Image.fromarray(preprocessedImg).save(byteIO, 'PNG')
self.write(byteIO.getvalue())
self.set_header("Content-type", "image/png")
然后我尝试以这种方式发送多张图片:
results = {}
# changes the segments to raw image data
for key, segment in segments.items():
byteIO = io.BytesIO()
Image.fromarray(segment).save(byteIO, 'PNG')
results[key] = byteIO.getvalue()
# sends the segments to the client
self.write(results)
# self.set_header("Content-type", "image/png")
这会引发错误“....... x0c”\ x91 \ t \ x00 \ x00 \ x00 \ x00IEND \ xaeB` \ x82'不是JSON可序列化的 “ 当self.set_header没有被注释掉时,我得到了同样的错误。
将按密钥排序的多个图像发送到客户端的正确方法是什么?
答案 0 :(得分:0)
字节流不是JSON可序列化字符串,通过解码将字节流转换为字符串。
results[key] = str(byteIO.getvalue().decode("utf-8",errors='replace'))