данные не передаются в Dynamodb от S3 - PullRequest
0 голосов
/ 17 апреля 2019

Данные не передаются в DynamodB из S3. Похоже, я что-то упустил. Пожалуйста, помогите мне, если кто-то работал над этим требованием.

Я уже написал код, который не выдает никакой ошибки. Хотя в то же время данные не передаются в DynamodB. Похоже, я что-то упустил. Я уже настроил таблицу DynamodB с первичным ключом как CN. В текстовом файле первая строка - это заголовок, а остальные строки содержат данные. Но данные не загружаются в DynamodB.

import boto3

s3 = boto3.client('s3')
dynamodb = boto3.resource('dynamodb','ap-southeast-1')

table=dynamodb.Table('TF')
txtFileReader={};

def txt_reader(event,context):
  bucket_path = event['Records'][0]['s3']['bucket']['name'];
  key_path = event['Records'][0]['s3']['object']['key'];

#value is getting printed for the below 2-prints
  print(bucket_path)
  print(key_path)


  txt_obj = s3.get_object(Bucket=bucket_path,Key=key_path)
  txtFileReader = txt_obj['Body'].read().decode('utf-8').split('\n')

#for below print, data is good
  print(txtFileReader)

#looks like the issue is after defining the batch_write
def batch_write(table_name,txtFileReader):    
  table=dynamodb.Table('TF')
  print(table)

with table.batch_writer() as batch:
   for row in txtFileReader:

     print(txtFileReader)
     batch.put_item(Item = {
            'CN':row.split('|')[0],
            'SN':row.split('|')[1],
            'WF':row.split('|')[2],
            'SEPM':row.split('|')[3],
            'Conf':row.split('|')[4],
            'Last-Check-In':row.split('|')[5]

            })

Вот пример файла, который я использую

CN|SN|WF|sepm|Conf|Last-Check-In 
PCOT|HQL||1|G01|9/3/2018 07:01 
PR2|CND||1|G02|8/29/2018 19:01 
M7|F9M||1|G03|9/3/2018 10:10 
MA|8CG4||1|G04|8/27/2018 15:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...