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.

Escribir múltiples elementos en una tabla de DynamoDB.

Tengo la siguiente lista de diccionarios:

datalist = [
    {'Business': 'Business A', 'Category': 'IT', 'Title': 'IT Manager'},
    {'Business': 'Business A', 'Category': 'Sourcing', 'Title': 'Sourcing Manager'}
]

Me gustaría cargarlo en DynamoDB en el siguiente formato:

table.put_item(Item={
    'Business': 'Business A iría aquí',
    'Category': 'IT iría aquí',
    'Title': 'IT Manager iría aquí'
},
{
    'Business': 'Business B iría aquí',
    'Category': 'Sourcing iría aquí',
    'Title': 'Sourcing Manager iría aquí'
})

He intentado convertir la lista de diccionarios en un diccionario primero y acceder a los elementos de esa manera o intentar iterar a través del parámetro “Item”, pero no he tenido suerte. Cualquier ayuda sería apreciada.

Aquí está la estructura de mi DynamoDB, 3 columnas (Business, Category, Title):

{
  "Business": {
    "S": "El negocio va aquí"
  },
  "Category": {
    "S": "La categoría va aquí"
  },
  "Title": {
    "S": "El título va aquí"
  }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para subir la lista de diccionarios a DynamoDB, puedes iterar a través de la lista y llamar a table.put_item() para cada diccionario. Aquí tienes un ejemplo de código:

    import boto3
    
    # crea un recurso DynamoDB
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('nombre-de-tu-tabla')
    
    # define la lista de diccionarios
    datalist = [
        {'Business': 'Negocio A', 'Category': 'TI', 'Title': 'Gerente de TI'},
        {'Business': 'Negocio A', 'Category': 'Abastecimiento', 'Title': 'Gerente de Abastecimiento'}
    ]
    
    # itera a través de la lista y sube cada diccionario a DynamoDB
    for item in datalist:
        table.put_item(
            Item={
                'Business': item['Business'],
                'Category': item['Category'],
                'Title': item['Title']
            }
        )
    
    

    Esto debería cargar los datos en DynamoDB en el formato deseado. El parámetro Item en table.put_item() debe ser un diccionario con los nombres de columna como claves y los valores correspondientes como valores.

Comments are closed.