2014-02-11 27 views
0

頁到頁面迭代的一種優雅的方式有通過boto.resultset.ResultSet最後的查詢可以返回結果的幾個頁面分頁的一個優雅的方式,例如:通過boto.resultset.ResultSet

amt = boto.mturk.connection.MTurkConnection() 
qualid = "XXX" 
quals = amt.get_qualifications_for_qualification_type(qualid, page_size=100, page_number=1) 
# quals becomes boto.resultset.ResultSet with just 100 items 

。鑑於boto中有很多查詢返回了幾頁結果,是否有任何優雅的方法來遍歷所有結果?

回答

0

好吧,我用我自己的解決方案:

def get_entire_resultset(query, *args, **kargs): 
    ps = 100; pn = 1 
    objs = query(*args, page_size=ps, page_number=pn, **kargs) 
    total_downloaded = ps 
    pn += 1 
    total = int(objs.TotalNumResults) 
    while total_downloaded<total: 
     objs.extend(query(*args, page_size=ps, page_number=pn, **kargs)) 
     total_downloaded += ps 
     pn += 1 
    return objs 

即使用如下:

quals = get_entire_resultset(amt.get_qualifications_for_qualification_type, qualid)