【发布时间】:2019-03-25 12:35:06
【问题描述】:
我正在使用 SPARQL 和 Python 向 DBPedia 发出请求。
很遗憾,当我发送带有特殊字符(如括号)的请求时,我总是收到错误消息。
我试图用反斜杠转义它(如下面的代码),但它不起作用。
我读到我可以指定整个 URI,但它也不起作用(但我可能没有以正确的方式做到这一点)。
考虑到我已有的请求,是否有人有其他选择或可以提供一个示例,说明我如何使用整个 URI 编写请求?
query = """
PREFIX : <http://dbpedia.org/resource/>
SELECT DISTINCT ?s ?p ?o WHERE {
{
?s ?p ?o
FILTER (?s=:Grimaldi_\(crater\))
}
}
"""
这是我得到的错误:
QueryBadFormed: QueryBadFormed: a bad request has been sent to the endpoint, probably the sparql query is bad formed.
Response:b"Virtuoso 37000 Error SP030: SPARQL compiler, line 0: Bad character '\\' (0x5c) in SPARQL expression at '\\'\n\nSPARQL query:\n\n#output-format:application/sparql-results+json\n\n PREFIX : <http://dbpedia.org/resource/>\nSELECT DISTINCT ?s ?p ?o WHERE {\n {\n ?s ?p ?o\n FILTER (?s=:Grimaldi_\\(crater\\))\n\n }\n}\n"
【问题讨论】:
-
我认为在查询的末尾有一个额外的
) -
不,实际上只是因为此查询是我未在此处发布的某些代码的一部分...我只是忘记删除帖子中的
)。但是感谢您的注意,我编辑了它!
标签: python escaping character sparql dbpedia