问题描述
我正在开发 Python 脚本,用于使用 CanvasAPI 自动评分作业,CanvasAPI 是用于 Canvas 学习管理平台的 Python 中的 API 包装器。在研究文档的过程中,我可以成功地在 Python 中为几个参数发出 curl 命令。例如,下面的转换用于上传单个提交的评分准则信息:
Curl command per the Canvas API docs:
PUT /api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id
与:
rubric_assessment[criterion_id][points]
Turns into this via the CanvasAPI Python wrapper
edit(rubric_assessment={'criterion_#':{'points': 'point #'}})
但是,我在添加附加参数的语法方面遇到困难,这会创建似乎是嵌套字典的内容。例如,如果我想添加文本评论和成绩点,API 文档提供了这个:
rubric_assessment[criterion_id][comments]
我已经尝试过:
edit(rubric_assessment={'criterion_#':{'points': 'point #'},{'criterion_#':{'comments': 'comment_text'}}})
产生语法错误:
SyntaxError: positional argument follows keyword argument
我也尝试过:
edit(rubric_assessment={'criterion_#':{'points': 'point #'},{'comments': 'comment_text'}})
产生此错误:
SyntaxError: expression cannot contain assignment,perhaps you meant "=="?
构建传递两个参数的语法的正确方法是什么?非常感谢您提供的任何见解和帮助。
解决方法
来自 rubric_assessment[criterion_id][comments],看来你需要,edit(rubric_assessment={'criterion_#':{'points': 'point #','comments':'comment_text'}})