I teach a variety of courses where I give comments to students that I sometimes like to re-use or modify for the next semester (Typically combining with a tool like TextExpander). Recently I created a course with about 25 different assignments, and I wanted to be able to download all of the submission comments. But given 25 assignments and 36 students (e.g., 900 comments), I didn’t want to do this manually!
Thankfully a great solution exists. Bsiever over on the Canvas Community forums provides a link to a python script that will do the heavy lifting for you. Here’s all I had to do this morning:
- Use Homebrew on my Mac to install Python (I hadn’t needed it on this machine yet)
- Request an API key through my school’s Canvas instance (Instructions here)
- Modify the script to add my API URL, Key, and the Course ID (I got the course ID by looking at the web URL / address at the top of my browser when going to my Canvas course)
- Run the script, dumping it to a text file (I named the script “canvassubmissions.py”, so I ran “python3 canvassubmissions.py > comments.txt” in my terminal window.
- I then used Excel’s “Get Data” power query tool (first button on the Data tab) to load the text file. It figured out columns and in a few seconds, I had this:
Now I have an easy searchable archive of my comments! And it saved myself or a graduate assistant probably around 30 hours of having to open each assignment and copy and paste!