首页 > 解决方案 > 不明白为什么这个 AttributeError: 'Graph' object has no attribute 'merge_one' 正在发生

问题描述

我正在学习一个教程,并且我正在使用最后一个 python2(自制软件)和 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'

我已经检查了文档,似乎一切正常。我试图卸载并安装 py2neo 的最新版本,但没有成功。我如何解决这个问题?

预期行为:从 python2 控制台运行该命令:如果该人存在,则不要复制它,而是更改其值,如果不存在则创建它。

标签: pythonneo4jpy2neo

解决方案


我很快就使用了版本 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 repo:

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

推荐阅读