InsperaReader

JSON parsing of Inspera Assessment files


Keywords
JSON, Inspera, parser, dataset
Licenses
MIT/MIT
Install
pip install InsperaReader==0.1.2

Documentation

inspera-reader

A tool to parse the output of exams/assignments from Inspera

setup

pip install InsperaReader

usage

Can be used either in python directly or as a command-line tool to create the dataset directly.

in python

from inspera import InsperaReader
reader = InsperaReader('path/fall_exam_2021.json')

for candidate in reader.candidates():
    for question in candidate.questions():
        # access any desired field and build your data 
        my_custom_data = [question.id(), question.grading(), question.clean_response()]
        # or access the predefined make-row field, intended for further use with pandas
        my_custom_data = question.make_row()

peek data:

from inspera import InsperaReader
reader = InsperaReader('path/fall_exam_2021.json')
print(reader.candidates()[0].questions()[0].clean_response())

command line (NOT IMPLEMENTED)

python -m insperareader --file path --outfile path --name name

a default setting that includes the following fields for each candidate's response (through make_row):

  • question id
  • responses
  • parsed responses
  • grading
  • max score
  • duration

classes

InsperaCandidate

  • id (candidate id) -> int
  • score (total score) -> int
  • start_end (date_from - date_to) -> str
  • questions (data related to each question in the assignment) -> list[InsperaQuestion]

InsperaQuestion

  • question_num -> int
  • question_title -> str
  • responses (raw data) -> list(str)
  • clean_response (parsed data) -> list(str)
  • grading (list of grades) -> list(int)
  • grader (name of graders) -> list(str)
  • max_score -> int
  • duration -> int
  • make_row -> list of above fields

Also implements a print override, containing simplified information.

TODO:

  • implement CLI
  • generalize field names in a config file (e.g. yml)