如何在python的SPARQLWrapper中创建参数化查询

我使用 SPARQLWrapper 使用以下 sparql 查询,如下所示。


from SPARQLWrapper import SPARQLWrapper, JSON

sparql = 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, 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'])

做了这个修改后,现在代码返回True,这是错误的。只是想知道我在哪里弄错了代码。


如果需要,我很乐意提供更多详细信息。


冉冉说
浏览 242回答 3
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)产生相同的输出。

米脂

因为要引入变量的值,所以必须在字符串之外。并且您不使用 a 来?执行此操作,而是使用字符串开头 + your_variable+字符串结尾的串联来执行此操作。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'])

斯蒂芬大帝

此代码应该可以解决您的问题,请查看。from SPARQLWrapper import SPARQLWrapper, JSONsparql = SPARQLWrapper("http://dbpedia.org/sparql")sparql.setQuery("\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "&nbsp; &nbsp; PREFIX dbpedia: <http://dbpedia.org/resource/>"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " PREFIX dbo: <http://dbpedia.org/ontology/>"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "PREFIX dbp: <http://dbpedia.org/property/>\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "PREFIX rdfs:&nbsp; &nbsp;<http://www.w3.org/2000/01/rdf-schema#>\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "PREFIX dct:&nbsp; &nbsp; <http://purl.org/dc/terms/>\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "SELECT DISTINCT ?name&nbsp; ?birthDate&nbsp; &nbsp;WHERE {\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"dbpedia:"+d+" foaf:name ?name\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "}\n"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python