舊的MTurk API(和boto2
)有一個UpdateQualificationScore
方法,允許用戶更新特定工作人員的分數,但這似乎已在基於boto3
的最新版本中消失。如何用boto3更新MTurk工人資格得分?
最新的MTurk API有一個GetQualificationScore
方法(實際上它返回一個完整的工人資格記錄,而不僅僅是分數),但沒有相應的UpdateQualificationScore
方法。更新現有員工的分數的機制是什麼?
舊的MTurk API(和boto2
)有一個UpdateQualificationScore
方法,允許用戶更新特定工作人員的分數,但這似乎已在基於boto3
的最新版本中消失。如何用boto3更新MTurk工人資格得分?
最新的MTurk API有一個GetQualificationScore
方法(實際上它返回一個完整的工人資格記錄,而不僅僅是分數),但沒有相應的UpdateQualificationScore
方法。更新現有員工的分數的機制是什麼?
是最好的,我可以告訴大家,與boto3
做到這一點的正確方法是使用AssociateQualificationWithWorker
端點:
session = boto3.Session(profile_name='mturk')
client = session.client('mturk')
response = client.associate_qualification_with_worker(
QualificationTypeId=qualification_type_id,
WorkerId=worker_id,
IntegerValue=score,
SendNotification=False,
)
這似乎工作,特別是當採取旁邊GetQualificationScore
中返回的「全「資格記錄,而不僅僅是分數。
前書呆子的回答是正確的。構建關中可用的Python示例在http://requester.mturk.com/developer,下面的工作分配則QualificationType改變比分爲工人:
import boto3
region_name = 'us-east-1'
aws_access_key_id = 'YOUR_ACCESS_ID'
aws_secret_access_key = 'YOUR_SECRET_KEY'
endpoint_url = 'https://mturk-requester-sandbox.us-east-1.amazonaws.com'
# Uncomment this line to use in production
# endpoint_url = 'https://mturk-requester.us-east-1.amazonaws.com'
client = boto3.client(
'mturk',
endpoint_url=endpoint_url,
region_name=region_name,
aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
)
# This will assign the QualificationType
client.associate_qualification_with_worker(QualificationTypeId = '3KIOU9ULHKIIS5OPUVORW7OE1070V0', WorkerId = 'A39ECJ12CY7TE9', IntegerValue = 100)
# This will set the QualificationScore from 100 to 90
client.associate_qualification_with_worker(QualificationTypeId = '3KIOU9ULHKIIS5OPUVORW7OE1070V0', WorkerId = 'A39ECJ12CY7TE9', IntegerValue = 90)
我要補充的是,在實踐中,有一個在看到約30-60秒的傳播延遲WorkerScore更新www.mturk.com。只是單挑,以便在試圖確定您對associate_qualification_with_worker的調用是否工作時不會被此情況拋出。 – jrb