Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import json
  3. import csv
  4. import boto3
  5.  
  6.  
  7. # def lambda_handler(event, context):
  8. # s3_info = event['Records'].pop(0)['s3']
  9. # s3 = boto3.resource('s3')
  10.  
  11. # bucket_name = s3_info['bucket']['name']
  12. # key_name = s3_info['object']['key']
  13.  
  14. # # obj = s3.Object(bucket_name, key_name)
  15.  
  16.  
  17.  
  18. # s3.meta.client.download_file(bucket_name, key_name, '/tmp/hello.csv')
  19.  
  20. # with open('/tmp/hello.csv', newline='') as csvfile:
  21. # spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')
  22. # for row in spamreader:
  23. # print('???'.join(row))
  24. # print("////////////////////////////////////////////////////")
  25.  
  26. # return {
  27. # 'statusCode': 200,
  28. # 'body': json.dumps('Hello from Lambda!')
  29. # }
  30.  
  31. score_board = {'Strongly Agree':5, 'Agree':4, 'Neutral':3, 'Disagree':2, 'Strongly Disagree':1}
  32. # dic_answers = {"lms":"12345", "trainer":"hoho", "answers":[]}
  33. list_ilt_questions = ["QID2","QID1","QID31","QID67","QID32","QID36","QID38","QID58","QID59","QID60","QID61","QID62"]
  34. eval_category = {"Overall satisfaction":["QID2","QID1","QID36"], "Instructor":["QID60","QID61","QID62"], "Classroom":["QID58","QID59"], "Contents":["QID31","QID67","QID32"]}
  35.  
  36.  
  37. def fixed_ilt_questions_format():
  38. dic_score={}
  39. for qid in list_ilt_questions:
  40. dic_score[qid] = {"answers" : [], "average" : None}
  41. return dic_score
  42.  
  43. #'/Users/dayoungle/WorkDocs/class/evaluation/raw/181012_arch.csv'
  44.  
  45. def read_and_parse_csv(filename):
  46. dic_format = fixed_ilt_questions_format()
  47. with open(filename) as csvfile:
  48. csvreader = csv.reader(csvfile)
  49. headers = next(csvreader, None)
  50. header_txt = next(csvreader, None)
  51. # # header_count = 0
  52. # # answer_count = len(csvreader)
  53.  
  54. for line in csvreader:
  55. for col in range(0, len(list_ilt_questions)):
  56. if line[col] != '':
  57. dic_format[list_ilt_questions[col]]["answers"].append(line[col])
  58. return dic_format
  59. # read_and_parse_csv('/Users/dayoungle/WorkDocs/class/evaluation/raw/181012_arch.csv', fixed_ilt_questions_format())
  60. # print(dic_score)
  61. #DDB insert??
  62. #
  63.  
  64. def calculate_average_by_qId(dic_score):
  65. dic_average = {}
  66. for qId, val in dic_score.items():
  67. list_answer = val["answers"]
  68. answer_count = 0
  69. score_sum = 0
  70.  
  71. if qId == "QID38":
  72. continue
  73.  
  74. for answer in list_answer:
  75. if answer in score_board:
  76. score_sum = score_sum + score_board[answer]
  77. answer_count = answer_count + 1
  78.  
  79. dic_average[qId] = round(score_sum/answer_count, 2)
  80. return dic_average
  81. # print(dic_score)
  82.  
  83. def final_result(dic_score):
  84. final_result = {}
  85. for key in eval_category:
  86. sum = 0
  87. category_count = 0
  88. for qId in eval_category[key]:
  89. sum = sum + dic_score[qId]
  90. category_count = category_count + 1
  91. final_result[key] = round(sum/category_count,2)
  92.  
  93. return final_result
  94.  
  95.  
  96. def __main__():
  97. parsed = read_and_parse_csv('')
  98. # print(parsed)
  99. dic_average = calculate_average_by_qId(parsed)
  100. comment = parsed["QID38"]
  101. final = final_result(dic_average)
  102. final['Comment'] = comment
  103. print(final)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement