Pybites Logo

Class rosters data conversion

Level: Intermediate (score: 3)

You have been given a comma-delimited .csv file containing class roster data.

Your task is to re-format this data so it can be imported into your student information system. Only the output counts for this Bite.

Input

Each row of the input file contains data for a single student and all of their assigned classes, formatted as follows:

StudentID,StudentName,Class1,Class2,... (etc.)

Sample input row:

34215,"Smith, John",,MATH06-1 - PH,ENG06-1 - BlR,,,PE06-1 - TK

- StudentID: a 5-digit int

- StudentName: formatted as "Last, First", including quotation marks

- Classes: there may be any number of classes per student on a single row, each formatted as: CLASSNAME-SECTION - TeacherInitials

Notes:

-Each student appears only once in the input file.

-A student may be enrolled in zero or more classes. Students with no classes assigned should not be included as output.

-Not every class slot may be populated for a given student. Some examples of class listings are:

Class,Class,Class

,,Class,,,Class,,Class

,,,,,,,,,

Output

Your function should return a single list of individual class assignments, formatted as follows:

CLASSNAME-SECTION,SchoolYear,StudentID

Example return value:

['MATH06-1,2020,34215', 'ENG06-1,2020,34215', 'PE06-1,2020,34215']

Notes:

- The returned list should hold one entry per student per class assigned, in the same student order as the input file

- Class names should have teacher initials removed from the end. (You can assume there is always a " - " between the class name and the teacher name, excluding quotations.)

- The school year for output is always 2020

- No quotation marks should be included within in the output data.