Я пытаюсь получить свои данные из DynamodB с помощью API-шлюза. Он работает с другими функциями, которые относительно похожи. Если я работаю без "json .dumps () ", я получаю Malformed исключение, но в журналах есть данные из таблицы, в противном случае я получаю это исключение (без каких-либо данных):
Сбой выполнения лямбды со статусом 200 из-за ошибки функции клиента: объект типа Decimal не JSON serializable
Это мой python -код
import json
import boto3
from decimal import Decimal
from boto3.dynamodb.conditions import Key, Attr
dynamodb = boto3.resource('dynamodb')
tablename = dynamodb.Table('db')
def lambda_handler(event, context):
query = event["queryStringParameters"]['email']
#query = event['query']
response = tablename.scan(
FilterExpression=Attr('email').eq(query))
items = response['Items']
return{
"isBase64Encoded": False,
"statusCode": 200,
"body" : json.dumps(items)
}
Этот код для другой таблицы работает нормально:
import json
import boto3
from decimal import Decimal
from boto3.dynamodb.conditions import Key, Attr
dynamodb = boto3.resource('dynamodb')
tablename = dynamodb.Table('FOODGER')
def lambda_handler(event, context):
query = event["queryStringParameters"]['query']
#query = event['query']
response = tablename.scan(
FilterExpression=Attr('generic food.name').begins_with(query.title()))
items = response['Items']
return{
"isBase64Encoded": False,
"statusCode": 200,
"body" : json.dumps(items)
}