如何在密码查询中引入参数?

How to introduce parameters in a cypher query?

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

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

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

'py2neo.database.status.ClientError: Expected a parameter named param'

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

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

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

而且效果很好。

有谁知道错在哪里吗?

提前致谢。

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

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())