如何在py2neo中将参数传递给cypher查询

Sau*_*ena 2 python neo4j cypher py2neo

我有一个变量name ="Rahul",我想以下列方式将此变量传递给Py2neo中的cypher查询:

line=session.execute("MATCH (person)WHERE person.name=name RETURN person")
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误 -

"py2neo.cypher.InvalidSyntax: name not defined (line 1, column 33)"
Run Code Online (Sandbox Code Playgroud)

如何在py2neo中传递变量

ste*_*uss 7

如果name是参数,则需要将其括在花括号中.您的查询应该类似于

MATCH (person) WHERE person.name = {name} RETURN person
Run Code Online (Sandbox Code Playgroud)

您的Python代码可能看起来如下

graph_db = neo4j.GraphDatabaseService()
qs = 'MATCH (person) WHERE person.name = {name} RETURN person'
query = neo4j.CypherQuery(graph_db, qs)
results = query.execute(name='Rahul')
print results
Run Code Online (Sandbox Code Playgroud)

  • 从版本3.0.9开始,为参数添加了`$ name`语法."{name}"语法现已弃用,将在以后的版本中删除. (2认同)