gpt4 book ai didi

python - 使用 Azure Functions 运行 Python 代码时出现 "400 Bad Request' 错误

转载 作者:行者123 更新时间:2023-12-03 03:59:32 25 4
gpt4 key购买 nike

我正在尝试使用 Visual Studio Code 通过 Azure Functions 运行 Python 代码。该代码在 Spyder 中运行良好,但当我将其复制到 Azure Functions 时,我收到“400 Bad Request”错误,这似乎是语法错误。基本上我试图从 JSON 文件读取时间序列数据,处理数据(使用 pandas 模块),然后应用一些数学运算。但似乎在Spyder或其他IDE中运行良好的代码无法在Azure Functions中正常运行。这是部分代码:

import logging
import pandas as pd
import json

import azure.functions as func


def main(req: func.HttpRequest) -> func.HttpResponse:
try:

data = req.get_json ()
data_datetime = pd.to_datetime(data['Timestamp'])
df=data.set_index(data_datetime)
df.drop('Timestamp',axis=1,inplace=True)

return func.HttpResponse(json.dumps(df), mimetype="application/json",)
except ValueError:
return func.HttpResponse(
"Could not parse request body.",
status_code=400
)

我的 JSON 文件如下所示:

{ "Timestamp":{"0": "1500069600000","1": "1500073200000"}, "Data":{"0":3,"1":4}}

应该提到的是,Azure Functions 在第 11 行之前运行良好(即 datadata = req.get_json ()),但之后当我使用 pandas 将数据转换为 pandas Data Frame 时,似乎出现了以下情况行没有被执行。

有没有办法将 Python 代码语法调整为 Azure Functions?

最佳答案

这是您的代码:

try:

data = req.get_json ()
data_datetime = pd.to_datetime(data['Timestamp'])
df=data.set_index(data_datetime)
df.drop('Timestamp',axis=1,inplace=True)

return func.HttpResponse(json.dumps(df), mimetype="application/json",)
except ValueError:
return func.HttpResponse(
"Could not parse request body.",
status_code=400
)

首先,将 data = req.get_json () 更改为 data = json.loads(req.get_body().decode(encoding='UTF-8'))

第二,虽然不知道为什么,但是data['Timestamp']是不允许的。

Timestamp部分应该直接放入,并且需要两个或多个:

{
"0": {
"test1":1500069600000,
"test2":1500069600000
},
"1": {
"test1":1500073200000,
"test2":1500069600000
}
}

第三,你这边df好像是json,所以你返回的时候,返回部分应该是这样的:

return func.HttpResponse(body=json.dumps(data),status_code=200)

关于python - 使用 Azure Functions 运行 Python 代码时出现 "400 Bad Request' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63023409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com