如何根据函数参数在节点上设置 属性
How to Set a property on a node based on function argument
尝试在 py2neo 中编写一个通用函数,该函数可以根据 属性 和参数中传递的值更新 Neo4j 中的任何节点 属性。我试过这样的东西
def updateUserProfile(self, property, value):
query = """
MATCH (n { username: {user} }) SET n.{property} = {value} RETURN n
"""
return graph.cypher.execute(query, user=self.username, property=property, value=value)
但是我得到一个错误
py2neo.cypher.error.statement.InvalidSyntax:无效输入“{”:预期的空格或 属性 键名(第 2 行,第 38 列(偏移量:46))
"MATCH (n { username: {user} }) SET n.{property} = {value} RETURN n"
它指向 {属性}。指定属性这样设置是否正确?
不,你不能这样设置属性。
最好的方法是为您的属性使用字典:
def updateUserProfile(self, property, value):
query = """
MATCH (n { username: {props}.user }) SET n += {props} RETURN n
"""
props = {}
props["user"] = self.username
props[property] = value
return graph.cypher.execute(query, {"props": props})
尝试在 py2neo 中编写一个通用函数,该函数可以根据 属性 和参数中传递的值更新 Neo4j 中的任何节点 属性。我试过这样的东西
def updateUserProfile(self, property, value):
query = """
MATCH (n { username: {user} }) SET n.{property} = {value} RETURN n
"""
return graph.cypher.execute(query, user=self.username, property=property, value=value)
但是我得到一个错误 py2neo.cypher.error.statement.InvalidSyntax:无效输入“{”:预期的空格或 属性 键名(第 2 行,第 38 列(偏移量:46)) "MATCH (n { username: {user} }) SET n.{property} = {value} RETURN n"
它指向 {属性}。指定属性这样设置是否正确?
不,你不能这样设置属性。
最好的方法是为您的属性使用字典:
def updateUserProfile(self, property, value):
query = """
MATCH (n { username: {props}.user }) SET n += {props} RETURN n
"""
props = {}
props["user"] = self.username
props[property] = value
return graph.cypher.execute(query, {"props": props})