#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)