es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

filtro de diccionario (evento de inserción de dynamodb)

Quiero verificar si un evento de dynamo db es INSERT o no. El evento se ve así:

{‘Records’: [{‘eventID’: ‘4ff7’, ‘eventName’: ‘INSERT’, ‘eventVersion’: ‘1.1’, ‘eventSource’: ‘aws:dynamodb’, ‘awsRegion’: ‘eu-central-1’, ‘dynamodb’: {‘ApproximateCreationDateTime’: 1637232247.0, ‘Keys’: {‘filename’: {‘S’: ‘issues.zip’}}, ‘NewImage’: {‘filetype’: {‘NULL’: True}, ‘filename’: {‘S’: ‘issues.zip’}, ‘unixtimestamp’: {‘S’: ‘1591282803734’}, ‘masterclient’: {‘S’: ‘100-ff0-uat’}, ‘source_bucket_name’: {‘S’: ’ems’}, ‘filekey’: {‘S’: ‘incoming/100-ff0-uat/1591282803734/issues.zip’}}, ‘SequenceNumber’: ‘9000’, ‘SizeBytes’: 232, ‘StreamViewType’: ‘NEW_IMAGE’}, ‘eventSourceARN’: ‘arn:aws:dynamodb:eu-central-1:table/filenames-ems/stream/2021-11-18T08:42:01.008’}]}

Intenté esto:

si event[‘Records’][‘eventName’] == ‘INSERT’:

pero arroja TypeError: los índices de lista deben ser enteros o segmentos, no cadenas.
¿Cuál es la mejor manera de filtrar un diccionario dentro de una lista dentro de un diccionario?

También intenté buscar si el valor en event.values == ‘INSERT’, pero tampoco funcionó.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La mejor forma de filtrar un diccionario dentro de una lista dentro de otro diccionario es usar una combinación de bucles for y declaraciones if. Por ejemplo, podrías usar el siguiente código para comprobar si el evento es una inserción:

    para registro en evento ['Registros']:
    si registro ['nombreEvento'] == 'INSERTAR':
    # Haz algo aquí

Comments are closed.