我使用SPARQLWrapper
inpython
来查询一个循环中包含许多不同查询的 Web 端点。
所以我试图让它像这样工作(让我们queries
保留所有不同的查询和result
结果):
sparql = SPARQLWrapper("url")
prefix = "prefix..."
for i in arange(1:len(queries)):
sparql.setQuery(prefix+queries[i])
result[i] = sparql.query().convert()
但这不起作用。我从列表中选择的第一个查询将返回假定的结果,但任何其他查询都不会。取而代之的是,我现在使用这个:
for i in arange(1:len(queries)):
[sparql,prefix] = initializeSPARQL()
sparql.setQuery(prefix+queries[i])
result[i] = sparql.query().convert()
并且
def initializeSPARQL():
sparql = SPARQLWrapper("url")
prefix = "prefix..."
return sparql,prefix
这行得通,也不是性能问题,因为查询本身就是瓶颈。但是有更好的解决方案吗?这似乎太错误了......