Python 2.7 从现有模板创建MTurk命中

Python 2.7 从现有模板创建MTurk命中,python-2.7,amazon-web-services,boto,mechanicalturk,Python 2.7,Amazon Web Services,Boto,Mechanicalturk,我正在使用Python AWS包boto v2.7与Mturk API交互,以创建和管理HIT等 我在尝试使用现有模板创建命中时遇到了问题。亚马逊关于该主题的文档如下: 我的代码是: from boto.mturk.connection import MTurkConnection mtc = MTurkConnection(aws_access_key_id=ACCESS_ID, aws_secret_access_key=SECRE

我正在使用Python AWS包boto v2.7与Mturk API交互,以创建和管理HIT等

我在尝试使用现有模板创建命中时遇到了问题。亚马逊关于该主题的文档如下:

我的代码是:

from boto.mturk.connection import MTurkConnection

mtc = MTurkConnection(aws_access_key_id=ACCESS_ID,
                             aws_secret_access_key=SECRET_KEY,
                             host=HOST)

mtc.create_hit(hit_layout=HIT_LAYOUT_ID)
错误是:

MTurkRequestError: MTurkRequestError: 200 OK
<?xml version="1.0"?>
<CreateHITResponse><OperationRequest><RequestId>986926dd-0263-4aca-970c-139b7ed4a0e8</RequestId></OperationRequest><HIT><Request><IsValid>False</IsValid><Errors><Error><Code>AWS.MechanicalTurk.InvalidParameterValue</Code><Message>There was an error parsing the request (1359492767224 s)</Message></Error></Errors></Request></HIT></CreateHITResponse>
MTurk API似乎需要一个点击布局参数,如下所述:

虽然我的原始模板确实使用了占位符值,但为了简单起见,我删除了它们,只是为了让代码正常工作。在这种情况下,我认为唯一需要的参数是hit_布局

这是对boto的api的限制还是我遗漏了什么

更新

我尝试使用评论中提到的mturkcore模块,结果如下

代码:

这会从泡沫中产生错误消息:

TypeNotFound: Type not found: 'HITLayoutId'
再一次,我遵循这里的说明:这看起来相当直截了当

解决方案 我终于能够从现有模板中创建一个HIT,但只能在生产环境中创建。很明显,沙盒和产品之间存在差异,这可能就是我得到上述错误的原因。如果有人在沙箱中成功地做到了这一点,请插话


此外,您必须确保奖励、LifetimeInSeconds和AssignmentDurationInSeconds参数与正在创建的布局模板匹配。最后,要查看您创建的点击率,您必须单击“单独管理点击率”链接。

这里有很多内容。“热门版面”应该是什么?问题表格?来自RegisterHITType的响应?还有别的吗?Boto mTurk接口非常糟糕,因为很多东西都被重命名了,几乎没有什么意义,酷,我明天会尝试一下,让你知道我是怎么做的。layoutid只引用模板本身,没有任何命中参数,所以你仍然需要指定它们。此外,生产服务器和沙盒服务器是完全独立的……因此,如果在沙盒中创建模板,则需要在生产中重新创建(并获取新的相应layoutid),以便在那里创建一个成功的模板。
TypeNotFound: Type not found: 'HITLayoutId'