당신이 망쳐 할 수있는 몇 가지가 있습니다해야 모르겠어요. 첫 번째는 사소한 것으로, 사용중인 클라이언트의 이름이 s3입니다. 이것은 MTurk에 대해 선택한 변수 이름 일 수 있지만 AWS S3 클라이언트에 대해이 함수를 호출하지 않는 것이 좋습니다.
두 번째는 While 루프를 처음 호출 할 때 next_token (변수)을 참조한다는 것입니다. 문제는 최초로 초기화되지 않으므로 실패 할 운명입니다. 다시 말하지만, 실제로는 문제가 아닌 간단한 코드 스 니펫의 유물 일 수 있습니다.
하지만 어느 쪽이든 다음 코드가 작동해야합니다. 반환 할 페이지의 크기를 구성 할 수 있습니다 (최대 100 개). 그러나 중요한 부분은 초기화되지 않은 NextToken을 절대로 통과하지 못하고 MTurk 클라이언트를 올바르게 설정한다는 것입니다. 이 코드는 제 끝 부분에서 작동합니다. 어떤 문제가 발생하면 알려주십시오. 더 도와 줘서 기뻐.
import boto3
region_name = 'us-east-1'
aws_access_key_id = 'YOUR_ACCESS_KEY'
aws_secret_access_key = 'YOUR_SECRET_KEY'
PAGE_SIZE = 20
endpoint_url = 'https://mturk-requester-sandbox.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,
)
qualification_id='9W4ZQKNWM3FZ5HGM2070'
response = client.list_workers_with_qualification_type(
QualificationTypeId=qualification_id,
Status='Granted',
MaxResults=PAGE_SIZE
)
next_token = response['NextToken']
qualification_count = response['NumResults']
while (response['NumResults'] == PAGE_SIZE):
print "Using next token of {}".format(next_token)
response = client.list_workers_with_qualification_type(
QualificationTypeId=qualification_id,
Status='Granted',
MaxResults=PAGE_SIZE,
NextToken=next_token
)
next_token = response['NextToken']
qualification_count += response['NumResults']
print "There are {} Workers in Qualification {}".format(qualification_count, qualification_id)
출처
2017-05-14 18:20:37
jrb
내가 설명서를 확인하지만이 부분을 설명하지 않습니다 http://boto3.readthedocs.io/en/latest/reference/services/mturk.html#MTurk.Client.list_workers_with_qualification_type 또한 – Niko