neo4j 不明白为什么这个AttributeError:'Graph'对象没有属性'merge_one'正在发生

2w3rbyxf  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(106)

我正在学习一个教程,我正在使用最后一个python 2(自制)和PyCharm(配置了项目解释器)-但是我被困在了这部分:

from py2neo import Graph, Node
graph = Graph()
nicole = Node("Person", name="Nicole")
graph.create(nicole)
graph.delete(nicole)
nicole = graph.merge_one("Person", "name", "Nicole")

错误:

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
AttributeError: 'Graph' object has no attribute 'merge_one'

我已经检查了documentation,看起来一切正常。我试着卸载并安装上一个版本的py 2neo,但没有成功。我该如何解决这个问题?
预期行为:从python 2控制台运行该命令:如果该人员存在,则不要复制该人员,而是更改其值;如果不存在,则创建该人员。

6yjfywim

6yjfywim1#

我很快就使用了版本4,而不是版本2。因此,使用Graph.merge解决了这个问题:

jonh = Node("Person", name="Jonh", age = 21)
graph.create(jonh)
ana = Node("Person", name="Ana", age = 44)
graph.create(ana)
michael = Node("Person", name="Ana", age = 33)
graph.merge(michael, "Person", "name") # So the age of Ana will change to 33, as expected.

要使用与我的问题相关的命令,必须安装版本2,例如直接从py2neo repo:

pip install https://github.com/technige/py2neo/archive/release/2.0.7.zip
rt4zxlrg

rt4zxlrg2#

通过检查the source code,我认为您要查找的函数是Graph.match_one。还有一个函数Graph.merge,但它不接受Node作为参数。

相关问题