如何解决如何在python中使用SPARQLWrapper处理参数化查询中的字符串
我正在尝试将参数提供给 SPARQL 查询;它不显示任何结果,也不显示任何错误。之前看过How to create a parameterised query in SPARQLWrapper in python等帖子,但是这个问题之前没有讨论过。
from rdflib import Graph
sparql = SPARQLWrapper("https://agrovoc.uniroma2.it/sparql")
my_variable = 'biomass'
sparql.setQuery("""
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl: <http://www.w3.org/2008/05/skos-xl#>
SELECT *
WHERE {
?subject a skos:Concept .
?subject skosxl:prefLabel ?xLab .
?xLab skosxl:literalForm "+my_variable+"@en .
} """)
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
print(results)
但是下面的工作正常。
from SPARQLWrapper import SPARQLWrapper,RDFXML,JSON,XML,N3
from rdflib import Graph
sparql = SPARQLWrapper("https://agrovoc.uniroma2.it/sparql")
sparql.setQuery("""
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl: <http://www.w3.org/2008/05/skos-xl#>
SELECT *
WHERE {
?subject a skos:Concept .
?subject skosxl:prefLabel ?xLab .
?xLab skosxl:literalForm "biomass"@en .
} """)
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
print(results)
解决方法
你应该把你的变量:这两个标记之间的标签'',即。 '"+my_variable+"'@en 它将起作用,因为这个变量应该是一个字符串,
我想问你如何在这个查询中插入一个自定义函数,因为它只接受 python 变量而不是函数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。