rdflib中SPARQL如何判斷得到的結果為空
阿新 • • 發佈:2019-02-01
今天利用rdflib中的SPARQL搜尋時,需要判斷搜尋結果是否為空,根據查詢結果所屬的類追溯到了sparqlResult類,如下所示
class SPARQLResult(Result): def __init__(self, res): Result.__init__(self, res["type_"]) self.vars = res.get("vars_") self.bindings = res.get("bindings") self.askAnswer = res.get("askAnswer") self.graph = res.get("graph")
Python程式碼如下:
<span style="font-size:18px;">import rdflib g = rdflib.Graph() g.parse("vc-db-1.rdf") print '--------------------------------------------------' q = u"SELECT ?x WHERE { ?x <http://www.w3.org/2001/vcard-rdf/3.0#FN> 'John Smith' }" qres = g.query(q) print qres.vars # [rdflib.term.Variable(u'givenName')] print qres.bindings # [{rdflib.term.Variable(u'givenName'): rdflib.term.Literal(u'Rebecca')}, {rdflib.term.Variable(u'givenName'): rdflib.term.Literal(u'John')}] print qres.graph # None</span>
我們可以看到,qres.bindings中含有我們需要的結果,如果值為空,則輸出[],所以我們只需要令qres.bindings==[]即可判斷。