无法使用索引从 DynamoDB table 检索结果
Not able to retrieve results from DynamoDB table using index
我正在使用一个 lambda 函数 (ptython),它接收一个事件并将其与 dynamodb 下的一个值进行比较 table。
Dynamo DB screenshot
Indexes
lambda 是正确的,但我无法从数据库中检索任何值,但该值在那里。它说:
{
“原因”:“未找到记录”,
“成功”:“假”
}
*** 更新:
我可以通过最后一部分检索“成功”:“真”:
else:
#item = response['Item']
print("GetItem succeeded:")
print(json.dumps(response))
print(response['Items'])
if "Items" in response:
return{
"Success":"True",
"Extension":response["Items"][{extension}]
}
正在打印:
{
"stackTrace": [
[
"/var/task/lambda_function.py",
30,
"lambda_handler",
"\"Extension\":response[\"Items\"][{extension}]"
]
],
"errorType": "TypeError",
"errorMessage": "list indices must be integers, not set"
}
我只需要这个输出:
"Success":"True"
"Extension:"7777"
请帮我实现这个,我会将答案标记为正确!
Lambda screenshot
Lambda test event
您似乎错误地访问了来自 DynamoDB 的响应。
"Extension":response["Items"][{extension}]
response['Items']
的输出是一个列表,您试图通过 [{extension}]
访问该列表是错误的。相反,您应该使用整数访问它,例如response['Items'][0]
。通常,您会循环遍历结果,因为 query
可以 return 多个项目。
打印查询的响应时会发生什么:print(response['Items'])
?
我正在使用一个 lambda 函数 (ptython),它接收一个事件并将其与 dynamodb 下的一个值进行比较 table。
Dynamo DB screenshot Indexes
lambda 是正确的,但我无法从数据库中检索任何值,但该值在那里。它说:
{ “原因”:“未找到记录”, “成功”:“假” }
*** 更新:
我可以通过最后一部分检索“成功”:“真”:
else:
#item = response['Item']
print("GetItem succeeded:")
print(json.dumps(response))
print(response['Items'])
if "Items" in response:
return{
"Success":"True",
"Extension":response["Items"][{extension}]
}
正在打印:
{
"stackTrace": [
[
"/var/task/lambda_function.py",
30,
"lambda_handler",
"\"Extension\":response[\"Items\"][{extension}]"
]
],
"errorType": "TypeError",
"errorMessage": "list indices must be integers, not set"
}
我只需要这个输出:
"Success":"True"
"Extension:"7777"
请帮我实现这个,我会将答案标记为正确!
Lambda screenshot
Lambda test event
您似乎错误地访问了来自 DynamoDB 的响应。
"Extension":response["Items"][{extension}]
response['Items']
的输出是一个列表,您试图通过 [{extension}]
访问该列表是错误的。相反,您应该使用整数访问它,例如response['Items'][0]
。通常,您会循环遍历结果,因为 query
可以 return 多个项目。
打印查询的响应时会发生什么:print(response['Items'])
?