def import_csv()

in design-patterns/load_logfile.py [0:0]


def import_csv(tableName, fileName, attributesNameList, attributesTypeList):
    dynamodb = boto3.resource(**boto_args)
    dynamodb_table = dynamodb.Table(tableName)
    count = 0

    servererror = False
    time1 = time.time()
    with open(fileName, 'r', encoding="utf-8") as csvfile:
        myreader = csv.reader(csvfile, delimiter=',')
        for row in myreader:
            count += 1
            newitem = {}
            for colunm_number, colunm_name in enumerate(attributesNameList):
                newitem[colunm_name] = attributesTypeList[colunm_number](row[colunm_number])
            # Create primary keys
            newitem["PK"] = "request#{}".format(newitem['requestid'])
            newitem["GSI_1_PK"] = "host#{}".format(newitem['host'])

            if newitem['responsecode'] == 500:
                newitem['servererror'] = '5xx'

            item = dynamodb_table.put_item(Item=newitem)

            if count % 100 == 0:
                time2 = time.time() - time1
                print("row: %s in %s" % (count, time2))
                time1 = time.time()
    return count