def prune_meeting(s, m, num): meeting_instructors = m.get('Instructors') instructors = [] if meeting_instructors is not None: for i in meeting_instructors: person = i.get('Person') if person is not None: data = {} data['name'] = person.get('Name') data['regid'] = person.get('RegID') instructors.append(data) if len(meeting_instructors) > 5: print "Found multiple meeting_instructors for course:" print student.pretty(s) print student.pretty(m) set_meeting(s, num, bldg=m['Building'], room=m['RoomNumber'], days='[ ]' if 'DaysOfWeek' not in m else '[' + m['DaysOfWeek']['Text'] + ']', start=m['StartTime'], end=m['EndTime'], meetingtype=m['MeetingType'], tba=m['DaysOfWeekToBeArranged'], instructors=instructors)
def prune_meeting(s, m, num): meeting_instructors = m.get('Instructors') instructors = [] if meeting_instructors is not None: for i in meeting_instructors: person = i.get('Person') if person is not None: data = {} data['name'] = person.get('Name') data['regid'] = person.get('RegID') instructors.append(data) if len(meeting_instructors) > 5: print "Found multiple meeting_instructors for course:" print student.pretty(s) print student.pretty(m) set_meeting(s,num, bldg = m['Building'], room = m['RoomNumber'], days = '[ ]' if 'DaysOfWeek' not in m else '[' + m['DaysOfWeek']['Text'] + ']', start = m['StartTime'], end = m['EndTime'], meetingtype = m['MeetingType'], tba = m['DaysOfWeekToBeArranged'], instructors = instructors );
def writeCSV(filename, rows): with open(filename, "wt") as data_file: csvwriter = csv.DictWriter(data_file, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL, fieldnames=fieldnames) csvwriter.writerow(dict((fn,fn) for fn in fieldnames)) for key,item in rows: try: csvwriter.writerow(item) except UnicodeEncodeError, e: print student.pretty(item) continue except Exception, e: continue
def writeCSV(filename, rows): with open(filename, "wt") as data_file: #print student.pretty(rows[0].keys()) fieldnames = sorted(rows[0].keys()) csvwriter = csv.DictWriter(data_file, delimiter=",", fieldnames=fieldnames) csvwriter.writerow(dict((fn,fn) for fn in fieldnames)) for item in rows: try: csvwriter.writerow(item) except UnicodeEncodeError, e: print student.pretty(item) continue except Exception, e: continue
def writeCSV(filename, rows): with open(filename, "wt") as data_file: #print student.pretty(rows[0].keys()) fieldnames = sorted(rows[0].keys()) csvwriter = csv.DictWriter(data_file, delimiter=",", fieldnames=fieldnames) csvwriter.writerow(dict((fn, fn) for fn in fieldnames)) for item in rows: try: csvwriter.writerow(item) except UnicodeEncodeError, e: print student.pretty(item) continue except Exception, e: continue
def writeCSV(filename, rows): with open(filename, "wt") as data_file: csvwriter = csv.DictWriter(data_file, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL, fieldnames=fieldnames) csvwriter.writerow(dict((fn, fn) for fn in fieldnames)) for key, item in rows: try: csvwriter.writerow(item) except UnicodeEncodeError, e: print student.pretty(item) continue except Exception, e: continue
#generates a json dictionary of all of the classes specified in the above "years" and "quarters" arrays print "Grabbing courses..." for department in curricula: print " ", department filename = os.path.join(subdir, department + ".csv") if os.path.exists(filename): print " skipped" continue for year in years: print ' ', year for quarter in quarters: classes = student.get_classes(year, quarter, department) if classes is None or "Courses" not in classes: print "bad data returned for %s %d %s"%(quarter, year, department) print student.pretty(classes) continue; #print student.pretty(classes) for item in classes["Courses"]: #print student.pretty(item) num = item['CourseNumber'] if num not in collegeabbr[department]: #print item['Href'] try: extra_data = student.get_class_data(item['Href']) if extra_data is not None: item['CourseDescription'] = None if extra_data['CourseDescription'] is None else extra_data['CourseDescription'].encode('utf-8') item['CourseComment'] = extra_data['CourseComment'] item['FirstYear'] = extra_data['FirstEffectiveTerm']['Year'] item['FirstQuarter'] = extra_data['FirstEffectiveTerm']['Quarter']
print "Grabbing courses..." for department in curricula: print " ", department filename = os.path.join(subdir, department + ".csv") if os.path.exists(filename): print " skipped" continue for year in years: print ' ', year for quarter in quarters: classes = student.get_classes(year, quarter, department) if classes is None or "Courses" not in classes: print "bad data returned for %s %d %s" % (quarter, year, department) print student.pretty(classes) continue #print student.pretty(classes) for item in classes["Courses"]: #print student.pretty(item) num = item['CourseNumber'] if num not in collegeabbr[department]: #print item['Href'] try: extra_data = student.get_class_data(item['Href']) if extra_data is not None: item['CourseDescription'] = None if extra_data[ 'CourseDescription'] is None else extra_data[ 'CourseDescription'].encode('utf-8') item['CourseComment'] = extra_data['CourseComment']