有什么办法可以从 :Param 开始运行 cypher 命令,使用 py2neo 2021.0.0

问题描述

好吧,在 neo4j 中,我试图实现这个简单的查询以保存 sparql 关键字以在以后的查询中使用,而 graph.run 不允许我这样做。显示语法错误

graph.run(":ParaM sparql: 'PREFIX sch: <http://schema.org/> CONSTRUCT{?item a sch:item; sch:legalIdentity ?legalIdentity} WHERE { {?item p:P31/ps:P31 wd:Q783794 optional { ?item wdt:P1278 ?legalIdentity} } UNION {?item p:P31/ps:P31 wd:Q4830453 optional { ?item wdt:P1278 ?legalIdentity}} UNION {?item p:P31/ps:P31 wd:Q43229 optional { ?item wdt:P1278 ?legalIdentity}} UNION {?item p:P31/ps:P31 wd:Q6881511 optional { ?item wdt:P1278 ?legalIdentity}}}'")

以下是使用 sparql 关键字的密码查询

graph.run('CALL n10s.rdf.import.fetch("https://query.wikidata.org/sparql?query=" + apoc.text.urlencode($sparql),"RDF/XML",{ headerParams: { Accept: "application/rdf+xml"} });')

解决方法

:PARAM 命令是内置的客户端浏览器/shell。它不存在于 Cypher 本身。正如 @fbiville 所提到的,您将需要传递一个 dict 参数。

,

您可以将参数字典传递给 run 方法,如 here 所述。