我们如何在 SPARQL 查询中使用 python 字符串变量?
How can we use a python string variable in a SPARQL query?
我想在没有 IRI 的 SPARQL 查询中使用 python 字符串变量(为了遍历变量列表等)。我尝试了下面的代码,但它似乎不起作用。
请忽略前缀等。我只是为了在这里发布我的代码而更改了它们,它们并没有真正影响错误或问题。
这是我试过的:
variable = "apple"
knows_query = """
PREFIX example: <http://www.example.com>
SELECT DISTINCT ?s
WHERE {
?s rdfs:label | example:someExample | example:anotherExample """+variable+""" .
}"""
这给出了错误:
ParseException: Expected {SelectQuery | ConstructQuery | DescribeQuery | AskQuery}, found '?' (at char 201), (line:6, col:9)
我已经试过了"+variable+"
,但还是不行。
以上代码应该实现这段代码所实现的:
knows_query = """
PREFIX example: <http://www.example.com>
SELECT DISTINCT ?s
WHERE {
?s rdfs:label | example:someExample | example:anotherExample "apple" .
}"""
我也试过,但由于某种原因似乎不起作用,给出了类似的错误。
您预期的查询字符串包含引号内的单词 apple
,而您的查询只是将其包含在引号中而不带引号。 (如有疑问,请打印出来。)
您必须在单词出现前后添加引号。
我正在使用 Python f-strings,可在 Python 3.6 及更高版本中使用,这对于可读性和代码维护来说要好得多。
knows_query = f"""
PREFIX example: <http://www.example.com>
SELECT DISTINCT ?s
WHERE {
?s rdfs:label | example:someExample | example:anotherExample "{variable}" .
}"""
我想在没有 IRI 的 SPARQL 查询中使用 python 字符串变量(为了遍历变量列表等)。我尝试了下面的代码,但它似乎不起作用。
请忽略前缀等。我只是为了在这里发布我的代码而更改了它们,它们并没有真正影响错误或问题。
这是我试过的:
variable = "apple"
knows_query = """
PREFIX example: <http://www.example.com>
SELECT DISTINCT ?s
WHERE {
?s rdfs:label | example:someExample | example:anotherExample """+variable+""" .
}"""
这给出了错误:
ParseException: Expected {SelectQuery | ConstructQuery | DescribeQuery | AskQuery}, found '?' (at char 201), (line:6, col:9)
我已经试过了"+variable+"
,但还是不行。
以上代码应该实现这段代码所实现的:
knows_query = """
PREFIX example: <http://www.example.com>
SELECT DISTINCT ?s
WHERE {
?s rdfs:label | example:someExample | example:anotherExample "apple" .
}"""
我也试过
您预期的查询字符串包含引号内的单词 apple
,而您的查询只是将其包含在引号中而不带引号。 (如有疑问,请打印出来。)
您必须在单词出现前后添加引号。
我正在使用 Python f-strings,可在 Python 3.6 及更高版本中使用,这对于可读性和代码维护来说要好得多。
knows_query = f"""
PREFIX example: <http://www.example.com>
SELECT DISTINCT ?s
WHERE {
?s rdfs:label | example:someExample | example:anotherExample "{variable}" .
}"""