py2neo cypher查询错误:neo4j.SyntaxException

时间:2014-03-11 12:09:37

标签: python neo4j cypher py2neo

我试图执行一个简单的参数化密码查询,该查询由于语法错误而实际失败。

params = {
   "k" : k,
   "v" : v,
   "p": {
      "name": "marc"
   }
}

query = "CYPHER 2.0 MATCH (n { { k } : { v } }) SET { p } RETURN n"
data, metadata = cypher.execute(graph_db, query, params=params)

...

SyntaxException: Invalid input '{': expected whitespace, comment, an identifier, '}' or UnsignedInteger (line 1, column 12)
"MATCH (n { { k } : { v } }) SET { p } RETURN n"

我使用py2neo 1.6.3和烧瓶。

提前致谢!

/马克

1 个答案:

答案 0 :(得分:1)

仅允许在某些地方使用参数。请尝试以下声明:

MATCH (n { k : { valueParam } }) SET { n.name = { nameParam } } RETURN n

您的地图将包含:

params = {
   "valueParam " : "v",
   "nameParam " : "marc"
}

说明Cypher docs

  

参数不能用作属性名称,关系类型   和标签,因为这些模式是查询结构的一部分   被编译成查询计划。