gpt4 book ai didi

python - 如何使用 mturk 遍历 boto3 中的结果

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:53 24 4
gpt4 key购买 nike

我是 boto 的新手,我尝试遍历我能得到的结果。

特别是,我想计算所有具有给定资格的​​ worker 。但是,限制是 100,我不明白它如何与 NextToken 一起使用。谁能帮帮我?

# next_token = 1
qualification_count = 0
while True:
response = s3.list_workers_with_qualification_type(
QualificationTypeId=qualification_id,
Status='Granted',
MaxResults=100,
NextToken=next_token
)
next_token = response['NextToken']
qualification_count += response['NumResults']

显然 next_token 不正确,但我不知道它应该是什么

最佳答案

有几件事可能会把你搞砸。第一个是次要的,即您正在使用的客户端名为 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)

关于python - 如何使用 mturk 遍历 boto3 中的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43922317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com