如何根据函数参数在节点上设置 属性

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