我一直在尝试使用merge方法通过Py2Neo驱动程序创建节点,但是遇到了问题。
我尝试tx.merge(a,"Person",('name','age'))
,但收到错误:TypeError:tuple
在合并文档中:here表示“请注意,可以使用元组指定多个属性键。”我是否缺少简单的东西?
答案 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