boto和'In'比较器

时间:2014-08-14 09:00:10

标签: mechanicalturk

我正在尝试使用带有boto的'In'比较器来指定Mechanical Turk作业上的多个语言环境。 This answer表示这是可能的,the AMT docs也是如此。

我试过了:

min_qualifications.add(
    LocaleRequirement(
        comparator='In',
        required_to_preview=False,
        locale=['US', 'CA', 'GB', 'IE', 'AU']))

我也尝试过各种各样:

locale='US, CA, GB, IE, AU'
locale='US|CA|GB|IE|AU'
locale='US CA GB IE AU'

怎么做?

1 个答案:

答案 0 :(得分:3)

仅仅因为mTurk API中的某些内容可能并不意味着Boto会支持它。 Boto尚未更新。

以下是使用mturk-python

的方法
import mturk
m = mturk.MechanicalTurk()

question = """
<QuestionForm xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsd">
  <Question>
    <QuestionIdentifier>answer</QuestionIdentifier>
    <QuestionContent>
      <Text>Hello world :^)</Text>
    </QuestionContent>
    <AnswerSpecification>
      <FreeTextAnswer/>
    </AnswerSpecification>
  </Question>
</QuestionForm>
"""

qual = [
        {'QualificationTypeId' : mturk.LOCALE,
         'Comparator' : 'In',
         'LocaleValue' : [{'Country':'GB'},{'Country':'US'},{'Country':'AU'}]},
]

reward = {'Amount' : 0, 'CurrencyCode' : 'USD'}

createhit = {"Title" : "Multiple locales",
                   "Description" : "https://github.com/ctrlcctrlv/mturk-python",
                   "Keywords" : "testing, one, two, three",
                   "Reward" : reward,
                   "Question" : question,
                   "QualificationRequirement" : qual,
                   "AssignmentDurationInSeconds" : 90,
                   "LifetimeInSeconds" : (60*60*24)}

r = m.create_request('CreateHIT', createhit)
print r
print m.flattened_parameters

enter image description here