不明白为什么此AttributeError:'Graph'对象没有属性'merge_one'发生

时间:2018-12-25 22:59:18

标签: python neo4j py2neo

我正在关注一个教程,并且我在使用最后一个带有PyCharm(配置了项目解释器)的python2(自制软件)-但我仍然停留在这一部分:

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,看来我一切正常。我试图卸载并安装最新版本的py2neo,但没有成功。我该如何解决这个问题?

预期的行为:从python2控制台运行该命令:如果该Person存在,请勿复制它,但更改其值;如果不存在,请创建它。

2 个答案:

答案 0 :(得分:1)

通过检查the source code,我认为您正在寻找的功能是Graph.match_one。还有一个函数Graph.merge,但是没有使用Node作为参数。

答案 1 :(得分:1)

我很快就使用了版本4而不是版本2。因此,使用@littlebenlittle建议的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回购中:

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