2017-06-15 47 views
0

舊的MTurk API(和boto2)有一個UpdateQualificationScore方法,允許用戶更新特定工作人員的分數,但這似乎已在基於boto3的最新版本中消失。如何用boto3更新MTurk工人資格得分?

最新的MTurk API有一個GetQualificationScore方法(實際上它返回一個完整的工人資格記錄,而不僅僅是分數),但沒有相應的UpdateQualificationScore方法。更新現有員工的分數的機制是什麼?

回答

1

是最好的,我可以告訴大家,與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中返回的「全「資格記錄,而不僅僅是分數。

0

前書呆子的回答是正確的。構建關中可用的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) 
+0

我要補充的是,在實踐中,有一個在看到約30-60秒的傳播延遲WorkerScore更新www.mturk.com。只是單挑,以便在試圖確定您對associate_qualification_with_worker的調用是否工作時不會被此情況拋出。 – jrb