我正試圖在RDFlib Python中使用以下查詢來獲取用戶的名字字面值的uri。使用python腳本在SPARQL查詢中過濾數據
plugin.register(
'sparql', rdflib.query.Processor,
'rdfextras.sparql.processor', 'Processor')
plugin.register(
'sparql', rdflib.query.Result,
'rdfextras.sparql.query', 'SPARQLQueryResult')
f1Str="Thomas"
ecsuri= GraphS.query("""
PREFIX akt: <http://www.aktors.org/ontology/portal#>
SELECT ?akturi WHERE{
?akturi akt:family-name ?fname.
FILTER (?fname = """+f1Str+""")
}""")
它提供了以下錯誤,它似乎是由於f1Str,我們如何能在SPARQL使用存儲在一些變量值過濾數據。請幫忙。
*Exception Type: ParseException
Exception Value: Expected "}" (at char 481), (line:10, col:29)*
更新後的查詢看起來像這樣,但給出錯誤** TypeError錯誤操作數類型爲一元+:'str'在語句FILTER ** f1Str =「Thomas」 ecsuri = GraphS.query('PREFIX foaf: 「'+ +'」PREFIX akt:「'+ +'」PREFIX貓頭鷹:「'+ +'」SELECT?uri WHERE {「'+ +'」?akturi akt:family-name?fname「'+ +'」FILTER (正則表達式(str(?fname),''+ f1Str +'',「i」))。「'+ +'」}「') –
imran
Andy是對的,您在python三重引號前後缺少引用 –