gpt4 book ai didi

python - AWS Lambda 以字符串形式返回 JSON 数据

转载 作者:行者123 更新时间:2023-12-04 04:13:16 25 4
gpt4 key购买 nike

我正在使用 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)
}

这里 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\"}]"
}

在这里,我希望 "body" 只返回一个没有双引号的数据数组,如下所示:
"body": [{\"Dp_Record_Id\": 2, \"DP_TYPE\": \"NSDL\", \"DP_ID\": \"40877589\", \"CLIENT_ID\": \"1232\", \"Default_flag\": \"Y\"}]

请让我知道这是否可能以及如何完成。
对此的任何帮助将不胜感激

最佳答案

我不确定这是否是你想要的,但你可以做 'body': json_data 。我现在在我的 λ 函数中对此进行了测试:

Lambda 函数

import json

def lambda_handler(event, context):

json_data = [{"Dp_Record_Id": 2,
"DP_TYPE": "NSDL",
"DP_ID": "40877589",
"CLIENT_ID": "1232",
"Default_flag": "Y"}]

return {'statusCode': 200,
'headers': {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": 'GET, POST, PUT, DELETE, OPTIONS'
},
'body': json_data
}

结果
Response:
{
"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"
}
]
}

关于python - AWS Lambda 以字符串形式返回 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61269796/

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