我在一个循环中使用SPARQLWrapper在python中使用许多不同的查询来查询web enpoint。
所以我试着让它像这样工作(让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这是可行的,也不是性能问题,因为查询本身是瓶颈。但有更好的解决办法吗?这看起来很不对..。
发布于 2013-02-06 14:45:26
很奇怪..。因为我一直在检查代码,而且query()方法完全是无状态的,所以不知道为什么会失败。
当I> 1时,结果包含什么?
我可以建议你试试以下几种方法吗?
sparql = SPARQLWrapper("url")
prefix = "prefix..."
results = []
for i in range(0, len(queries)):
sparql.resetQuery()
sparql.setQuery(prefix+queries[i])
results[i] = sparql.query().convert()发布于 2013-02-01 16:49:12
我是图书馆的开发人员之一。
你的第一次尝试会产生错误。我将检查内部数据结构与以前的使用保持什么,以允许这样的方式使用库。
第二个解决方案,即使是有效的,也不应该是正确的方法。
就像我说的,我会看看如何解决这个问题。
今后,请向项目提交适当的错误报告或向邮件列表发送电子邮件。
https://stackoverflow.com/questions/13571401
复制相似问题