1. 程式人生 > >rdflib中SPARQL如何判斷得到的結果為空

rdflib中SPARQL如何判斷得到的結果為空

今天利用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==[]即可判斷。