首页 > 解决方案 > cherrypy 页面处理程序返回包含字符串和字节对象的组合响应

问题描述

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

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

我不能使用json.dumps,因为这bytes部分不是 json 可序列化的。如何在我的页面处理程序中返回它并将其返回到前端?

标签: cherrypy

解决方案


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

import base64

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

在客户端(js)中,您可以使用atob 函数获取原始字节。


推荐阅读