Python SPARQL初始化

Python SPARQL初始化,python,initialization,sparql,Python,Initialization,Sparql,我在python中使用SPARQLWrapper在一个循环中查询具有许多不同查询的web enpoint 所以我试着让它像这样工作让查询保存所有不同的查询并生成结果: sparql = SPARQLWrapper("url") prefix = "prefix..." for i in arange(1:len(queries)): sparql.setQuery(prefix+queries[i]) result[i] = sparql.query().convert() 但

我在python中使用SPARQLWrapper在一个循环中查询具有许多不同查询的web enpoint

所以我试着让它像这样工作让查询保存所有不同的查询并生成结果:

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

这是可行的,也不是性能问题,因为查询本身就是瓶颈。但有更好的解决办法吗?这似乎是错误的…

我是该库的开发人员之一

你的第一次尝试出现了一个错误。我将检查内部数据结构与以前的用法保持一致,以允许以这种方式使用库

你的第二个解决方案,即使是可行的,也不应该是正确的方法

正如我所说,我将看看如何解决这个问题


今后,请向项目提交一份适当的错误报告,或向邮件列表发送一封电子邮件。

这很奇怪。。因为我一直在检查代码,而查询方法是完全无状态的,所以不知道为什么会失败

当i>1时,结果[i]包含什么

我可以建议你试试下面的吗

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()

哦,我不知道resetQuery方法。我将尝试这个,并将提供更新,谢谢!您好,我试过了,但我的SPARQL版本没有提供重置方法:AttributeError:SPARQLWrapper实例在引入的版本中没有属性“resetQuery”?不确定。。。但是很长一段时间。。。给出一个肯定或否定的答案会很酷,但是一个答案。。。我有点厌倦了那些只问问题的用户,但他们并没有真正提供关于其他人支持的反馈。很抱歉,我还没有回答任何问题,我仍然坚持我在一开始提供的解决方案。不知怎么的,它起作用了,但我觉得很奇怪。我现在还没有更新代码,可能是版本问题导致了一些奇怪的行为。一旦我有时间,我将尝试更新我的SPARQL包装器代码并反馈我的经验。干杯