あなたはおそらくすでにこれを理解していると思いますが、私が推測するのは、実際に記事の5ページを持っていないということです。最後のページよりも大きいページを指定すると、最後のページが戻され、重複した記事が表示されます。
まず、記事の数を取得し、それを使用してページの総数を決定し、xrange
関数でその値を使用することをおすすめします。ここでは、関数である:
def get_all_articles():
article_count = shopify.Article.count()
articles = []
if article_count > 0:
for page in xrange(1, ((article_count-1) // 50) + 2):
articles.extend(shopify.Article.find(page=page))
return articles
あなたはさらにいくつかの手順を行って、任意の可算shopifyリソースを処理するために、これを汎用化することができます
def get_all_of_resource(resource, **kwargs):
resource_count = resource.count(**kwargs)
resources = []
if resource_count > 0:
for page in xrange(1, ((resource_count-1) // 250) + 2):
arguments = kwargs
arguments.update({"limit" : 250, "page" : page})
resources.extend(resource.find(**arguments))
return resources
あなたはこのようにそれを使用したい:
shirts = get_all_of_resource(shopify.Product, product_type="T-Shirt")
ご覧のとおり、追加のパラメータを渡して結果をフィルタリングし、ページあたりの最大アイテム数(250)を要求する機能も追加しました。