Ошибка синтаксиса?Код работает без строк 16-17, но в противном случае ошибки - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь импортировать данные в таблицу DynamoDB, используя файл CSV, и соединения и все работает правильно, однако я постоянно получаю синтаксическую ошибку в строках 16-17.В файле CSV объекты перечислены точно так же, как переменная в коде.(У меня более 2 столбцов и около 415 строк, так что это расстраивает)

Я попытался удалить лишние строки, чтобы ограничить его до 1, и он по-прежнему выдает ошибку 'name': row.split (',') [0].

import boto3

s3 = boto3.client('s3')
dynamodb = boto3.resource('dynamodb')
def csv_reader(event, context):
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']
    obj = s3.get_object(Bucket=bucket, Key=key)

    rows = obj['Body'].read().split('\n')
    table = dynamodb.Table('ServiceOfferings')

    with table.batch_writer() as batch:
        for row in rows:
            batch.put_item(Item={
                'name':row.split(',')[0],
                'business_criticality':row.split(',')[1]
            })



An error occurred (ValidationException) when calling the BatchWriteItem 
operation: The provided key element does not match the schema: 
ClientError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 17, in csv_reader
'business_criticality':row.split(',')[1]
File "/var/runtime/boto3/dynamodb/table.py", line 101, in put_item
self._add_request_and_process({'PutRequest': {'Item': Item}})
File "/var/runtime/boto3/dynamodb/table.py", line 110, in 
_add_request_and_process
self._flush_if_needed()
File "/var/runtime/boto3/dynamodb/table.py", line 131, in 
_flush_if_needed
self._flush()
File "/var/runtime/boto3/dynamodb/table.py", line 137, in _flush
RequestItems={self._table_name: items_to_send})
File "/var/runtime/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/var/runtime/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
ClientError: An error occurred (ValidationException) when calling the 
BatchWriteItem operation: The provided key element does not match the 
schema

Результат должен применить информацию к таблице DynamoDB с 5 или около того столбцами и 415 строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...