我在python
中使用SPARQLWrapper
來查詢具有循環中許多不同查詢的web入口點。SPARQL初始化
所以我試圖使它像這樣的工作(讓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
這工作並且也不性能的一個問題,因爲查詢本身是瓶頸。但有沒有更好的解決方案?這似乎是錯誤的...
哦,我不知道resetQuery()方法。我會嘗試這個,並會提供更新,謝謝! –
現在工作嗎? – wikier
嗨,我試過了,但我的SPARQL版本沒有提供重置方法:'AttributeError:SPARQLWrapper實例沒有屬性'resetQuery''在哪個版本引入? –