Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用boto从作业中提取自由文本答案_Python_Boto_Mechanicalturk - Fatal编程技术网

Python 如何使用boto从作业中提取自由文本答案

Python 如何使用boto从作业中提取自由文本答案,python,boto,mechanicalturk,Python,Boto,Mechanicalturk,我正在尝试使用boto库提取亚马逊Mechanical Turk员工提交的自由文本答案 assignments = conn.get_assignments(hit_id) for assignment in assignments: worker = assignment.WorkerId answer = assignment.Answer 在这里,我希望答案是由工作人员提交的自由文本字符串(HIT要求工作人员提交的唯一内容),然而,上面的代码并没有给出这个答案。这里我遗漏

我正在尝试使用boto库提取亚马逊Mechanical Turk员工提交的自由文本答案

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

在这里,我希望答案是由工作人员提交的自由文本字符串(HIT要求工作人员提交的唯一内容),然而,上面的代码并没有给出这个答案。这里我遗漏了什么?

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

的属性。为了获得您要查找的FreeText信息,您需要迭代赋值属性答案。除非您提交了多个表单,否则您的表单应该是第一个索引

此列表的类型为“问题解答”

以下是关于问题解答的boto文档

您可以看到实际需要的属性是qid字段

下面是一些更新后的代码,它们应该更有意义

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

看看这个:,它建议遵循这里的定义:,我期望一个赋值对象的属性名为
Answer
,文档确实建议这样做。我看了看代码,它似乎在一个名为answers的属性中累积答案。物体上有吗?谢谢你给我指出了正确的方向。事实上,你上面所说的并不完全符合我的情况,为了得到Turkers的输入,我必须为每个作业使用:
assignment.answers[0][0]。fields[0]
。事实上,
assignment.answers[0]
给出了一个
ResultSet
对象,而
assignment.answers[0][0]
给出了一个
QuestionFormAnswer
对象,我没有在该对象上找到任何
FreeText
属性。。。我想知道只有在使用API显式地为点击创建一个属性时,
FreeText
属性是否才存在。无论如何,谢谢你。