генерировать DynamoDB put_item с несколькими ключами - PullRequest
0 голосов
/ 10 марта 2020

Я слежу за этим туто . Мне нужно сделать то же самое с CSV, который содержит 120 столбцов. В туто ключи для предметов даются вручную. Есть ли способ сделать это автоматически? У меня уже есть список со столбцами CSV, которые я могу использовать. Все мои столбцы являются строками. Это блок, который я хочу автоматизировать:

response = dyndb.put_item(
                TableName='emplist',
                Item={
                'empid' : {'N':str(empid)},
                'name': {'S':name},
                'salary': {'N':str(salary)},
                'parttime': {'BOOL':False},
                }
            )

Мой список имен столбцов:

columns = ['A', 'B', 'C', ...... ]

1 Ответ

1 голос
/ 10 марта 2020

К сожалению, поскольку типы могут различаться, лучше всего делать это вручную для некоторых столбцов. Проверьте, какой из них является преобладающим, автоматизируйте его и сделайте все остальное вручную.

Предположим, что 'S' находится в ~ 90 столбцах.

for index, row_item in enumerate(row):
    items_dict['column_' + i] = {'S': row_item}

# now manually replace the ones with a different type or that have additional parsing
item_dict['column_4'] = {'N': int(row[4])}
...

# if you want different key names do:
item_dict['name'] = item_dict['column_5']
del item_dict['column_5']

response = dyndb.put_item(
            TableName='emplist',
            Item=item_dict
        )
...