我正在开发一个Azure函数,它接受以下格式的请求主体:
"body": {
"$content-type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"$content": "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"
}
内容是一个Excel文件,我希望在Azure函数内部操作该文件,然后返回一个响应,其主体与请求的格式相同。
我面临的挑战是在解码和编码过程中,从一个基地64,我已经尝试了这个:
import azure.functions as func
import base64
def main(req: func.HttpRequest) -> func.HttpResponse:
body = req.get_body()
decrypted=base64.b64decode(body)
# STUB Load decoded body as a Excel object for cell manipulation
encrypted = base64.b64encode(decrypted)
return func.HttpResponse(encrypted, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
然而,我的函数的输出是一个损坏的Excel文件,无法加载到应用程序中。
我应该遵循什么正确的过程来解码这个请求主体,然后作为响应返回?
谢谢
1条答案
按热度按时间hk8txs481#
我已经在我的环境中进行了复制,并获得了以下预期结果:
首先,我已经采取了样本代码,你可以复制粘贴下面的代码在你的azure函数,我已经给出了如下样本输入:
我已经采取了上述代码,我得到了下面的结果为
Hello Rithwik
:现在,我已经使用您输入我的代码,我得到了下面的错误
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9d in position 54: invalid start byte
:所以,据我所知,问题出在你的输入上。所以试着把你的输入改变成所需的格式,然后用我的代码检查。你会得到和我一样的输出。