import time import json with open("subjects.json", 'r') as f: subjects = json.load(f); with open("teachers.json", 'r') as f: teachers=json.load(f); with open("timetables.json", 'r') as f: timetables=json.load(f); allteachers = teachers["teachers"]; myteachers = []; for teacher in allteachers: fullname = teacher["teacher"]["displayName"]; try: [surname, firstname] = fullname.split(); except ValueError: surname = ""; firstname = ""; faculty = teacher["departments"][0]["shortName"] if teacher["departments"] else ""; myteachers.append({"fullname": fullname, "surname": surname, "firstname": firstname, "faculty": faculty}); with open("myteachers.json", 'w') as f: json.dump(myteachers, f); myfaculties=[]; allfaculties = teachers["departments"]; for faculty in allfaculties: shortname = faculty["shortName"]; longname = faculty["displayName"]; myfaculties.append({"shortname": shortname, "longname": longname}); with open("myfaculties.json", 'w') as f: json.dump(myfaculties, f); myrealteachers=set(); mytimetable={}; myrooms={}; mycourses=[]; for course in timetables: melpomeid = course.get("id", course.get("melpomeid")); shortname = course["shortname"]; longname = course["longname"]; timetable = course["timetable"]; days=timetable["days"]; courseteachers=set(); courserooms=set(); courseklassen=set(); courseslots=[]; for day in days: grids=day["gridEntries"]; for grid in grids: if grid["position1"]: for klasse in grid["position1"]: if not klasse.get("current"): continue; klassenname=klasse["current"]["displayName"]; courseklassen.add(klassenname) if grid["position2"]: for room in grid["position2"]: if not room.get("current"): continue; roomname=room["current"]["displayName"]; roomlongname=room["current"]["longName"]; myrooms[roomname] = roomlongname; courserooms.add(roomname); cteachers=grid["position3"]; if cteachers : for teacher in cteachers: if not teacher.get("current"): continue; teachername=teacher["current"]["displayName"]; print(teachername); myrealteachers.add(teachername); courseteachers.add(teachername); duration=grid["duration"]; courseslots.append({"teachers": list(courseteachers), "rooms": list(courserooms), "klassen": list(courseklassen), "info": grid["lessonInfo"], "time": duration}); mycourses.append({"melpomeid": melpomeid, "shortname": shortname, "longname": longname, # "timetable": timetable, "slots": courseslots}); #print(mycourses); with open("mycourses.json", 'w') as f: json.dump(mycourses, f); myrealcourses=[]; for c in mycourses: if len(c["slots"]) > 0 : myrealcourses.append(c); with open("myrealcourses.json", 'w') as f: json.dump(myrealcourses, f); myrealteachers_upper = {name.upper() for name in myrealteachers}; myteachersincourses=[]; for teacher in myteachers: fullname = teacher["fullname"]; if fullname.upper() in myrealteachers_upper : myteachersincourses.append(teacher); with open("myrealteachers.json", 'w') as f: json.dump(myteachersincourses, f); print("Total number of courses: " + str(len(mycourses))); print("Courses in timetable: " + str(len(myrealcourses))); print("Total number of teachers: " + str(len(myteachers))); print("Teachers in timetable: " + str(len(myteachersincourses)));