【问题标题】:cherrypy page handler returning a combo response with both string and bytes objectcherrypy 页面处理程序返回包含字符串和字节对象的组合响应
【发布时间】:2021-02-26 00:59:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: cherrypy


    【解决方案1】:

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

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

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

    【讨论】:

    • 很好,顺便问一下,您是从哪里获得这些知识的?我在 Cherrypy 的文档中找不到这个。
    • 另外,如果fileBody 部分要被html 使用,我还需要使用atob 将其转换回字节吗?谢谢。
    • 这与 CherryPy 无关。只是普通的Python。至于<img>,您可能需要构建一个数据图像URI。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2020-03-21
    • 2016-01-24
    相关资源
    最近更新 更多