2

我正在尝试使用 boto 库提取 Amazon Mechanical Turk 的工作人员提交的自由文本答案。

assignments = conn.get_assignments(hit_id)
for assignment in assignments:
    worker = assignment.WorkerId
    answer = assignment.Answer

在这里,我希望 answer 是一个工人提交的自由文本字符串(HIT 要求工人提交的唯一内容),但是,上面的代码并没有给我这个。我在这里想念什么?

4

2 回答 2

3

在 boto 中,为了获取您正在寻找的FreeText信息,您需要遍历分配属性answers。除非您提交了多个表单,否则您的表单应该是第一个索引。

此列表的类型为QuestionFormAnswer

这是关于 QuestionFormAnswer http://sourcecodebrowser.com/python-boto/2.3.0/classboto_1_1mturk_1_1connection_1_1_question_form_answer.html的 boto 文档

可以看到你真正想要的属性是qidfields

这是一些应该更有意义的更新代码。

assignments = conn.get_assignments(hit_id)
for assignment in assignments:
    worker_id = assignment.WorkerId
    # Iterate through question forms answers which are our fields
    for question_form_answer in assignment.answers[0]:
        field_id = question_form_answer.qid
        field_value = question_form_answer.fields
于 2015-02-10T10:04:09.607 回答
2

我认为上面示例中的赋值对象将有一个名为的属性answers,它是一个QuestionFormAnswer对象列表。这些对象中的每一个都应该有一个名为 的属性FreeText

于 2013-03-20T14:13:49.550 回答