我有这个Python函数可以使用algolia返回所有经过验证的场地
def get_all_venues():
try:
page = 0
hits_per_page = 1000 # Increase this value
while True:
result = index.search("", {
"filters": "is_verified=1",
"page": page,
"hitsPerPage": hits_per_page
})
hits = result["hits"]
if not hits:
break # Break the loop if there are no more hits
with open("venues.csv", "a") as file:
writer = csv.writer(file)
for hit in hits:
venue_id = hit["venue_id"]
venue_name = hit["venue_name"]
is_verified = hit["is_verified"]
fields = [venue_id, venue_name, is_verified]
writer.writerow(fields)
print(str(venue_id) + ": " + str(venue_name))
page += 1 # Move to the next page
except Exception as e:
print("An error occurred:", str(e))
get_all_venues()
当我运行它时,它仅返回前 20 个结果。我知道数据集中至少有 20000 个结果。我知道这一点是因为我尝试过另一种方法。
我尝试过的
我编写了一个函数,它接受
venue_id
并手动检查 is_verified
值是否等于 1,如果等于,则写入 csv。然而,这非常乏味,因为我必须设置数百万个 venue_id
值的范围并检查每条记录,这使得脚本需要几天时间。我确信过滤器更快,所以我想改用过滤器。
我发现您遇到了我现在遇到的问题。你找到解决办法了吗?
谢谢