cherrypy 页面处理程序返回带有字符串和字节对象的组合响应

cherrypy page handler returning a combo response with both string and bytes object

我正在使用 Cherrypy 构建我的 Web 应用程序服务器。在一个页面处理程序中,我的响应正文采用以下格式:

{
  "fileId": "=+afeincas340t5u3tg9",
  "fileBody": ...(some bytes here)
}

我无法使用 json.dumps,因为 bytes 部分不可 json 序列化。如何在我的页面处理程序中 return 并将其 return 发送到前端?

您可以使用base64序列化文件的二进制内容。

import base64

response = json.dumps({
   "fileId": "=+afeincas340t5u3tg9",
   "fileBody": base64.standard_b64encode(b"some bytes").decode()
 })

在客户端 (js) 中,您可以使用 atob function.

获取原始字节