如何在python中使用SPARQLWrapper处理参数化查询中的字符串

如何在python中使用SPARQLWrapper处理参数化查询中的字符串,python,rdflib,linked-data,sparqlwrapper,sparql-generate,Python,Rdflib,Linked Data,Sparqlwrapper,Sparql Generate,我试图给SPARQL查询提供参数;它不显示任何结果,也不显示任何错误。我读过以前的帖子,比如,但是这个问题以前没有讨论过 from rdflib import Graph sparql = SPARQLWrapper("https://agrovoc.uniroma2.it/sparql") my_variable = 'biomass' sparql.setQuery(""" PREFIX skos: <http://www.w3.o

我试图给SPARQL查询提供参数;它不显示任何结果,也不显示任何错误。我读过以前的帖子,比如,但是这个问题以前没有讨论过

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)
来自rdflib导入图
sparql=SPARQLWrapper(“https://agrovoc.uniroma2.it/sparql")
my_变量='生物量'
sparql.setQuery(“”)
前缀skos:
前缀skosxl:
挑选*
何处{
?主题a skos:概念。
?主题skosxl:预标签?xLab。
xLab skosxl:literalForm“+my_变量+”@en。
} """)
setReturnFormat(JSON)
结果=sparql.query().convert()
打印(结果)
但是,以下各项工作正常

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)
从SPARQLWrapper导入SPARQLWrapper、RDFXML、JSON、XML、N3
从rdflib导入图
sparql=SPARQLWrapper(“https://agrovoc.uniroma2.it/sparql")
sparql.setQuery(“”)
前缀skos:
前缀skosxl:
挑选*
何处{
?主题a skos:概念。
?主题skosxl:预标签?xLab。
?xLab skosxl:文字形式的“生物量”@en。
} """)
setReturnFormat(JSON)
结果=sparql.query().convert()
打印(结果)

您应该将变量:标签放在这两个标记“”之间,即“+my_variable+”@en,它会工作,因为这个变量应该是字符串


我会问您如何在这个查询中插入自定义函数,因为它是只接受python变量而不是函数?

我会问您如何在这个查询中插入自定义函数,因为它是只接受python变量而不是函数?-堆栈溢出,因此如果您有新问题,请单击按钮询问。如果此问题有助于提供上下文,请包含此问题的链接。谢谢您的回复。很抱歉,我不知道如何在查询中添加函数。我对这项工作不熟悉。祝你好运:)祝你好运!