r42*_*r42 9 python api json amazon-web-services aws-lambda
我正在使用 AWS Lambda 创建 API,并希望以 JSON 格式返回数组的数据。但是,当我调用 lambda 时,它能够返回所需的 JSON 数据,但它是以双引号引起来的字符串。我尝试在 Python IDE 中运行相同的代码,一切正常,但当我尝试在 Lambda 中返回它时,它以字符串形式出现。这与 Lambda 如何处理 Python 函数中的语句有关吗return?这就是我在 Lambda 中返回数据的方式:
return {
'statusCode': 200,
'headers': {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": 'GET, POST, PUT, DELETE, OPTIONS'
},
'body': json.dumps(json_data,default = myconverter)
}
Run Code Online (Sandbox Code Playgroud)
这json_data是一个 python 列表,其中填充了从数据库检索的用户传递的特定唯一 ID 的数据,并且myconverter是我编写的 JSON 编码器。
我得到的输出是:
{
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS"
},
"body": "[{\"Dp_Record_Id\": 2, \"DP_TYPE\": \"NSDL\", \"DP_ID\": \"40877589\", \"CLIENT_ID\": \"1232\", \"Default_flag\": \"Y\"}]"
}
Run Code Online (Sandbox Code Playgroud)
在这里,我希望"body"只返回一个不带双引号的数据数组,如下所示:
"body": [{\"Dp_Record_Id\": 2, \"DP_TYPE\": \"NSDL\", \"DP_ID\": \"40877589\", \"CLIENT_ID\": \"1232\", \"Default_flag\": \"Y\"}]
Run Code Online (Sandbox Code Playgroud)
请告诉我这是否可能以及如何完成。对此的任何帮助将不胜感激
我不确定这是否是您想要的,但您可以这样做\'body\': json_data。我现在在我的 \xce\xbb 函数中测试了这一点:
import json\n\ndef lambda_handler(event, context):\n\n json_data = [{"Dp_Record_Id": 2, \n "DP_TYPE": "NSDL",\n "DP_ID": "40877589", \n "CLIENT_ID": "1232", \n "Default_flag": "Y"}]\n\n return {\'statusCode\': 200,\n \'headers\': {\n "Access-Control-Allow-Origin": "*",\n "Access-Control-Allow-Methods": \'GET, POST, PUT, DELETE, OPTIONS\'\n },\n \'body\': json_data\n } \nRun Code Online (Sandbox Code Playgroud)\n\nResponse:\n{\n "statusCode": 200,\n "headers": {\n "Access-Control-Allow-Origin": "*",\n "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS"\n },\n "body": [\n {\n "Dp_Record_Id": 2,\n "DP_TYPE": "NSDL",\n "DP_ID": "40877589",\n "CLIENT_ID": "1232",\n "Default_flag": "Y"\n }\n ]\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
23782 次 |
| 最近记录: |