我正在遍历大约1000个条目的列表,如下所示:
def wikidata_user_lookup(id_str):
q = f'''
SELECT ?item ?itemLabel ?kind ?kindLabel
WHERE
{{
?item p:P2002 ?twitter .
?item wdt:P31 ?kind .
?twitter pq:P6552 "{id_str}" .
SERVICE wikibase:label {{ bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }}
}}
'''
sparql.setQuery(q)
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
results_df = pd.io.json.json_normalize(results['results']['bindings'])
return results_df
for user in users:
res = wikidata_user_lookup(user)
因此,我提交了约1000个查询,一个接一个。据我所知,我没有并行运行多个查询,所以这是不允许的?我得到了HTTPError: HTTP Error 429: Too Many Requests
。处理这种情况的正确方法是什么
我建议阅读官方文件
它说明您可以运行:
因此,您的1000个查询必须在一分钟内最多30个,以避免限制,并使用不到60秒的处理时间
由于您得到了429错误,根据上面链接的文档,您应该检查
Retry-After
头并等待指定的时间,然后再进行更多查询相关问题 更多 >
编程相关推荐