Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import json
- import csv
- import boto3
- # def lambda_handler(event, context):
- # s3_info = event['Records'].pop(0)['s3']
- # s3 = boto3.resource('s3')
- # bucket_name = s3_info['bucket']['name']
- # key_name = s3_info['object']['key']
- # # obj = s3.Object(bucket_name, key_name)
- # s3.meta.client.download_file(bucket_name, key_name, '/tmp/hello.csv')
- # with open('/tmp/hello.csv', newline='') as csvfile:
- # spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')
- # for row in spamreader:
- # print('???'.join(row))
- # print("////////////////////////////////////////////////////")
- # return {
- # 'statusCode': 200,
- # 'body': json.dumps('Hello from Lambda!')
- # }
- score_board = {'Strongly Agree':5, 'Agree':4, 'Neutral':3, 'Disagree':2, 'Strongly Disagree':1}
- # dic_answers = {"lms":"12345", "trainer":"hoho", "answers":[]}
- list_ilt_questions = ["QID2","QID1","QID31","QID67","QID32","QID36","QID38","QID58","QID59","QID60","QID61","QID62"]
- eval_category = {"Overall satisfaction":["QID2","QID1","QID36"], "Instructor":["QID60","QID61","QID62"], "Classroom":["QID58","QID59"], "Contents":["QID31","QID67","QID32"]}
- def fixed_ilt_questions_format():
- dic_score={}
- for qid in list_ilt_questions:
- dic_score[qid] = {"answers" : [], "average" : None}
- return dic_score
- #'/Users/dayoungle/WorkDocs/class/evaluation/raw/181012_arch.csv'
- def read_and_parse_csv(filename):
- dic_format = fixed_ilt_questions_format()
- with open(filename) as csvfile:
- csvreader = csv.reader(csvfile)
- headers = next(csvreader, None)
- header_txt = next(csvreader, None)
- # # header_count = 0
- # # answer_count = len(csvreader)
- for line in csvreader:
- for col in range(0, len(list_ilt_questions)):
- if line[col] != '':
- dic_format[list_ilt_questions[col]]["answers"].append(line[col])
- return dic_format
- # read_and_parse_csv('/Users/dayoungle/WorkDocs/class/evaluation/raw/181012_arch.csv', fixed_ilt_questions_format())
- # print(dic_score)
- #DDB insert??
- #
- def calculate_average_by_qId(dic_score):
- dic_average = {}
- for qId, val in dic_score.items():
- list_answer = val["answers"]
- answer_count = 0
- score_sum = 0
- if qId == "QID38":
- continue
- for answer in list_answer:
- if answer in score_board:
- score_sum = score_sum + score_board[answer]
- answer_count = answer_count + 1
- dic_average[qId] = round(score_sum/answer_count, 2)
- return dic_average
- # print(dic_score)
- def final_result(dic_score):
- final_result = {}
- for key in eval_category:
- sum = 0
- category_count = 0
- for qId in eval_category[key]:
- sum = sum + dic_score[qId]
- category_count = category_count + 1
- final_result[key] = round(sum/category_count,2)
- return final_result
- def __main__():
- parsed = read_and_parse_csv('')
- # print(parsed)
- dic_average = calculate_average_by_qId(parsed)
- comment = parsed["QID38"]
- final = final_result(dic_average)
- final['Comment'] = comment
- print(final)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement