如何在cypher查询中引入参数?

时间:2016-10-10 20:13:35

标签: python neo4j cypher py2neo

我在Python程序中有这个cypher查询:

prevNode = graph_db.data("OPTIONAL MATCH (n:Node) WHERE n.property = {param} RETURN n")

上面的代码行给出了这个错误:

  

'py2neo.database.status.ClientError:期望一个名为param'的参数'

param在程序的这一点上定义得很好,因为我在执行查询之前打印了一行。

我试图将值放在查询中而不是参数中,如下所示:

prevNode = graph_db.data("OPTIONAL MATCH (n:Node) WHERE n.property = '1234' RETURN n")

运作良好。

有谁知道错误在哪里?

提前致谢。

1 个答案:

答案 0 :(得分:3)

您没有将任何替换变量传递给函数。

graph_db.data("OPTIONAL MATCH (n:Node) WHERE n.property = {param} RETURN n", param='1234')

您还可以明确传入locals()字典;这将使用您定义的相应名称的任何局部变量:

graph_db.data("OPTIONAL MATCH (n:Node) WHERE n.property = {param} RETURN n", **locals())