亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在python的SPARQLWrapper中創建參數化查詢

如何在python的SPARQLWrapper中創建參數化查詢

冉冉說 2021-11-16 15:43:18
我使用 SPARQLWrapper 使用以下 sparql 查詢,如下所示。from SPARQLWrapper import SPARQLWrapper, JSONsparql = SPARQLWrapper("http://live.dbpedia.org/sparql")sparql.setReturnFormat(JSON)sparql.setQuery(" ASK { dbc:Meteorological_concepts skos:broader{1,7} dbc:Medicine } ")results = sparql.query().convert()print(results['boolean'])此查詢返回False哪個是正確的輸出。我嘗試通過將查詢轉換為參數化查詢(通過使用category name如下變量)來修改上述代碼。from SPARQLWrapper import SPARQLWrapper, JSONsparql = SPARQLWrapper("http://live.dbpedia.org/sparql")sparql.setReturnFormat(JSON)my_variable = 'dbc:Meteorological_concepts'sparql.setQuery(" ASK { ?my_variable skos:broader{1,7} dbc:Medicine } ")results = sparql.query().convert()print(results['boolean'])做了這個修改后,現在代碼返回True,這是錯誤的。只是想知道我在哪里弄錯了代碼。如果需要,我很樂意提供更多詳細信息。
查看完整描述

3 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

如果您使用 Python 3.6+,則可以使用 f-strings:

f" ASK {{ {my_variable}  skos:broader{{1,7}} dbc:Medicine }} "

將會

' ASK { dbc:Meteorological_concepts  skos:broader{1,7} dbc:Medicine } '

對于舊版本,您可以使用format

" ASK {{ {}  skos:broader{{1,7}} dbc:Medicine }} ".format(my_variable)

產生相同的輸出。


查看完整回答
反對 回復 2021-11-16
?
米脂

TA貢獻1836條經驗 獲得超3個贊

因為要引入變量的值,所以必須在字符串之外。并且您不使用 a 來?執行此操作,而是使用字符串開頭 + your_variable+字符串結尾的串聯來執行此操作。


from SPARQLWrapper import SPARQLWrapper, JSON

sparql = SPARQLWrapper("http://live.dbpedia.org/sparql")

sparql.setReturnFormat(JSON)


my_variable = 'dbc:Meteorological_concepts'


sparql.setQuery(" ASK { "+my_variable+" skos:broader{1,7} dbc:Medicine } ")

results = sparql.query().convert()

print(results['boolean'])


查看完整回答
反對 回復 2021-11-16
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

此代碼應該可以解決您的問題,請查看。


from SPARQLWrapper import SPARQLWrapper, JSON

sparql = SPARQLWrapper("http://dbpedia.org/sparql")

sparql.setQuery("\n"

                    "    PREFIX dbpedia: <http://dbpedia.org/resource/>"

                    " PREFIX dbo: <http://dbpedia.org/ontology/>"

                    "PREFIX dbp: <http://dbpedia.org/property/>\n"

                    "PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n"

                    "PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>\n"

                    "PREFIX dct:    <http://purl.org/dc/terms/>\n"

                    "SELECT DISTINCT ?name  ?birthDate   WHERE {\n"

                   "dbpedia:"+d+" foaf:name ?name\n"

                    "}\n"

                    "                   ")


查看完整回答
反對 回復 2021-11-16
  • 3 回答
  • 0 關注
  • 265 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號