我是boto的新手,我尝试迭代我能得到的结果。
特别是,我想要计算具有特定资格的所有工人。但是,限制为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不正确,但我不知道应该是什么
答案 0 :(得分:2)
有一些事情可能会让你搞砸了。第一个是次要的,即您使用的客户端名为s3。这可能只是您为MTurk选择的变量名称,但值得确保您不会尝试针对AWS S3客户端调用此名称。
第二个是您在第一次调用While循环时引用next_token(变量)。问题是它第一次没有被初始化,因此注定要失败。同样,这可能只是您已经展示的简短代码段的遗留物,而不是实际上的问题。
但无论哪种方式,以下代码都应该有效。请注意,您可以配置要返回的页面大小(我相信最多100个)。但重要的是,它永远不会传递给未初始化的NextToken,而且它正确地设置了MTurk客户端。这段代码适用于我。如果您遇到任何问题,请告诉我。很高兴进一步帮助。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="stv.wordspower.ProgressFragment"
android:orientation="vertical">
<!-- TODO: Update blank fragment layout -->
<TextView
android:id="@+id/txt_progresses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txt_progresses"
android:textAlignment="center"
android:textColor="@android:color/background_dark"
android:textSize="30dp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txt_empty"
android:textAlignment="center"
android:textSize="30dp"
android:onClick="onClick"
android:clickable="true"/>