Hi,
I am getting the following error when testing a lambda function which exports fields from a dynamodb if they are populated :
"errorMessage": "'Win'",
"errorType": "KeyError",
The lambda function is:
import boto3
def lambda_handler(event, context):
# Connect to DynamoDB
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('ticketing')
# Get all items from the table
items = table.scan()['Items']
# Create a list to hold the filtered items
filtered_items = []
# Iterate through the items and check if the fields are not empty
for item in items:
if item['username'] and item['Win'] and item['Lose'] and item['Score']:
filtered_items.append({'username': item['username'], 'Win': item['Win'], 'Lose': item['Lose'], 'Score': item['Score']})
# Return the filtered items
return filtered_items
Can anyone shed some light on this please?
Thank you :-)
Thank you for replying :-)
Ended up doing it another way:
import boto3
dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('INSERT DATABASE NAME HERE')
def lambda_handler(event, context): users = table.scan()['Items'] filtered_users = [] for user in users: if user.get('Win') or user.get('Lose') or user.get('Score'): filtered_users.append({ 'username': user.get('username'), 'Win': user.get('Win'), 'Lose': user.get('Lose'), 'Score': user.get('Score') }) return filtered_users