我试图执行一个简单的参数化密码查询,该查询由于语法错误而实际失败。
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和烧瓶。
提前致谢!
/马克
答案 0 :(得分:1)
仅允许在某些地方使用参数。请尝试以下声明:
MATCH (n { k : { valueParam } }) SET { n.name = { nameParam } } RETURN n
您的地图将包含:
params = {
"valueParam " : "v",
"nameParam " : "marc"
}
说明Cypher docs:
参数不能用作属性名称,关系类型 和标签,因为这些模式是查询结构的一部分 被编译成查询计划。