如果您还有旧版本boto
安装完毕后,最简单的就是使用get_as_xml()
的方法ExternalQuestion
:
import boto3
from boto.mturk.question import ExternalQuestion
mturk = boto3.client(
'mturk',
endpoint_url='https://mturk-requester-sandbox.us-east-1.amazonaws.com',
region_name='us-east-1',
aws_access_key_id='your_access_key',
aws_secret_access_key='your_secret_key',
)
question = ExternalQuestion("https://example.com/mypage.html", frame_height=600)
new_hit = mturk.create_hit(
Title='Answer a simple question',
Description='Help research a topic',
Keywords='question, answer, research',
Reward='0.15',
MaxAssignments=1,
LifetimeInSeconds=172800,
AssignmentDurationInSeconds=600,
AutoApprovalDelayInSeconds=14400,
Question=question.get_as_xml(), # <--- this does the trick
)
print "HITID = " + new_hit['HIT']['HITId']
如果你看一下输出question.get_as_xml()
,你会发现它非常简单,你可以自己生成它:
<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
<ExternalURL>https://example.com/mypage.html</ExternalURL>
<FrameHeight>600</FrameHeight>
</ExternalQuestion>
您需要确保对问题 URL 中的字符进行转义,使其成为有效的 XML 文件。