py2neo.neo4j.GraphDatabaseService.node(идентификатор) вызывает ошибку ClientError(e)

#py2neo

#py2neo

Вопрос:

Я думаю, что это может быть очевидным для опытных пользователей py2neo, но я не мог смириться с этим, так как я новичок. Я пытаюсь следить за онлайн-документом py2neo: http://book.py2neo.org/en/latest/graphs_nodes_relationships /, но я смог использовать методы ‘Node’ для экземпляра, возвращенного из GraphDatabaseService.create , но когда я использую GraphDatabaseService.node для извлечения узла, все ожидаемые методы узла перестают работать, я сузил его до примераниже с помощью метода Node.len.

Заранее спасибо за любую полезную информацию.

Брюс

Мой env: windows 7 professional pycharm 3.4 py2neo 1.6.4 python2.7.5

Вот коды:

 from py2neo import node, neo4j

db = neo4j.GraphDatabaseService()
db.clear()
a, = db.create(node({'name': ['a']}))
a.add_labels('Label')
b = db.node(a._id)
print db.neo4j_version
print b, type(b)
print "There is %s node in db" % db.order
print len(b)
 

Вот результаты:

 C:Python27python.exe C:/Users/you_zhang/PycharmProjects/py2neo/ex11.py
(2, 0, 3, u'')
(10) <class 'py2neo.neo4j.Node'>
There is 1 node in db
Traceback (most recent call last):
  File "C:/Users/you_zhang/PycharmProjects/py2neo/ex11.py", line 11, in <module>
    print len(b)
  File "C:Usersyou_zhangAppDataRoamingPythonPython27site-packagespy2neoneo4j.py", line 1339, in __len__
    return len(self.get_properties())
  File "C:Usersyou_zhangAppDataRoamingPythonPython27site-packagespy2neoneo4j.py", line 1398, in get_properties
    self._properties = assembled(self._properties_resource._get()) or {}
  File "C:Usersyou_zhangAppDataRoamingPythonPython27site-packagespy2neoneo4j.py", line 1349, in _properties_resource
    return self._subresource("properties")
  File "C:Usersyou_zhangAppDataRoamingPythonPython27site-packagespy2neoneo4j.py", line 403, in _subresource
    uri = URI(self.__metadata__[key])
  File "C:Usersyou_zhangAppDataRoamingPythonPython27site-packagespy2neoneo4j.py", line 338, in __metadata__
    self.refresh()
  File "C:Usersyou_zhangAppDataRoamingPythonPython27site-packagespy2neoneo4j.py", line 360, in refresh
    self._metadata = ResourceMetadata(self._get().content)
  File "C:Usersyou_zhangAppDataRoamingPythonPython27site-packagespy2neoneo4j.py", line 367, in _get
    raise ClientError(e)
py2neo.exceptions.ClientError: Not Found
 

Ответ №1:

Ваш точный фрагмент кода работает для меня (OS X, neo4j 2.1.2). Там не должно быть никаких проблем. Вы пытались установить последнюю версию neo4j и запустить свой код в свежей и нетронутой базе данных? Я столкнулся с несоответствиями в поврежденных базах данных.

Вы пытались загрузить узел с помощью функции .find()?

 result = db.find('Label')
for n in result:
    print(n)