Python 使用多个属性键进行Py2Neo合并
我一直在尝试使用merge方法使用Py2Neo驱动程序创建节点,但遇到了一些问题 我尝试了Python 使用多个属性键进行Py2Neo合并,python,neo4j,cypher,py2neo,Python,Neo4j,Cypher,Py2neo,我一直在尝试使用merge方法使用Py2Neo驱动程序创建节点,但遇到了一些问题 我尝试了tx.merge(一个“Person”,“name”,“age”)但是得到了错误:TypeError:tuple 在合并文档中:它说“注意,可以使用元组指定多个属性键。”我是否缺少一些简单的东西 合并函数的参数可能有问题。或许可以尝试: tx.merge(a, primary_label='Person', primary_key=('name', 'age')) 另请注意,文档中有两种不同的merge函
tx.merge(一个“Person”,“name”,“age”)
但是得到了错误:TypeError:tuple
在合并文档中:它说“注意,可以使用元组指定多个属性键。”我是否缺少一些简单的东西 合并函数的参数可能有问题。或许可以尝试:
tx.merge(a, primary_label='Person', primary_key=('name', 'age'))
另请注意,文档中有两种不同的merge
函数方法。请参见这两个链接之间的区别:
我最近也遇到了同样的问题,在阅读了文档中提供的源代码后,我得出结论,py2neo的说法是错误的,它说“可以使用元组指定多个键”,不管调用哪个
merge()
(主要是因为它们几乎相同,除了Graph.merge
使用Transaction
的自动提交值)它只允许一个键,不喜欢元组类型
或者,您可以使用py2neo函数直接执行Cypher
MERGE
查询,以包括您试图创建/合并的任何节点(例如Graph.run(“MERGE(:Node{…})”)
).不幸的是,这并不能真正解决问题,但这可能不在我们手中。我在不同的环境中遇到了类似的问题;我用
a = Node("Person", name, age)
a.__primarylabel__ = "Person"
a.__primarykey__ = "name"
#a.__primarykey__ = "age"
tx.merge(a) # used graph.merge(a)
看起来它不适用于多个关键点,但只有一个关键点是这样工作的:
topic = Node("Topic",
cname=cname,
name=name
)
graph.merge(
topic, "Topic", "name"
)
其中name是要合并的键
v4文档
也尝试了。同样的错误。我尝试了graph.merge()和tx.merge()并得到了同样的错误。我也尝试了tx.merge(a)并获取错误:ValueError:合并操作需要主标签和主键。不确定还有什么要做的。在将节点传递给合并函数之前,请先尝试创建一个节点。请参阅以下示例:感谢帮助。我有一个d={'name':'foo','age':'bar'}
a=node(“Person”,**d)
tx.merge(a)
这给了我一个错误:ValueError:合并操作需要主标签和主键如果这是py2neo的文档或实现中的错误,您是否考虑过在上提出问题?看起来不再支持多键合并: