def get_profile(student): models = csv_test.getModels() soma_dev = 0 dev = 0 soma_gest = 0 gest = 0 soma_infra = 0 infra = 0 for disc in student: if disc in models["Dev"]: soma_dev += float(student[disc].replace(",", ".")) dev += 1 elif disc in models["Gest"]: soma_gest += float(student[disc].replace(",", ".")) gest += 1 elif disc in models["Infra"]: soma_infra += float(student[disc].replace(",", ".")) infra += 1 media_dev = soma_dev / dev media_gest = soma_gest / gest media_infra = soma_infra / infra return {"Dev" : media_dev, "Gest" : media_gest, "Infra" : media_infra}
from recommendations import sim_distance, sim_pearson, top_matchs, get_recommendations, get_profile import csv_test, json, ast from pymongo import MongoClient client = MongoClient() db = client.studentShareTest csv_test.saveStudents() studJson = csv_test.getStudents() modelsJson = csv_test.getModels() prefs = {stud["registry"] : stud["grades"] for stud in studJson} db.workData.delete_many({}) for stud in studJson: if stud == "_id": continue workData = {"name" : stud["name"]} workData["registry"] = stud["registry"] workData["warningSubjects"] = get_recommendations(prefs, stud["registry"], top_match = True) workData["recommendedSubjects"] = get_recommendations(prefs, stud["registry"], reverse = True, top_match = True) workData["topMatchs"] = top_matchs(prefs, stud["registry"]) workData["profile"] = get_profile(stud["grades"]) db.workData.insert_one(workData)