Py2Neo使用多个属性键合并

时间:2018-06-28 02:58:12

标签: python neo4j cypher py2neo

我一直在尝试使用merge方法通过Py2Neo驱动程序创建节点,但是遇到了问题。

我尝试tx.merge(a,"Person",('name','age')),但收到错误:TypeError:tuple

在合并文档中:here表示“请注意,可以使用元组指定多个属性键。”我是否缺少简单的东西?

4 个答案:

答案 0 :(得分:2)

最近我遇到了同样的问题,在阅读了文档中提供的源代码之后,我得出的结论是py2neo错了,它说“可以通过使用元组”,无论您调用哪个merge()(主要是因为它们几乎相同,除了Graph.merge使用Transaction的自动提交值),它只允许1个键,并且不喜欢元组类型。

或者,您可以使用py2neo函数直接执行Cypher MERGE查询,以包含要创建/合并的任何节点(例如Graph.run("MERGE (:Node {...})"))。不幸的是,这并不能真正解决问题,但这可能不在我们手中。

答案 1 :(得分:0)

合并功能的参数可能存在问题。也许尝试:

tx.merge(a, primary_label='Person', primary_key=('name', 'age'))

还要注意,文档中的merge函数有两种不同的方法。查看这两个链接之间的区别:

http://py2neo.org/v4/database.html#py2neo.database.Graph.merge http://py2neo.org/v4/database.html#py2neo.database.Transaction.merge

答案 2 :(得分:0)

我在不同的情况下有类似的问题;我解决了。

a = Node("Person", name, age)
a.__primarylabel__ = "Person"
a.__primarykey__ = "name"
#a.__primarykey__ = "age"
tx.merge(a) # used graph.merge(a)

答案 3 :(得分:0)

看起来它不能与多个键一起使用,而只有一个像这样:

        topic = Node("Topic", 
            cname=cname, 
            name=name
        )

        graph.merge(
            topic, "Topic", "name"
        )

其中的名称是要合并的key

v4文档 https://py2neo.org/v4/database.html?highlight=merge#py2neo.database.Graph.merge