首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在python中重现bulbs/py2neo以创建边(关系)

无法在python中重现bulbs/py2neo以创建边(关系)
EN

Stack Overflow用户
提问于 2013-04-27 18:23:27
回答 2查看 429关注 0票数 1

我正在尝试使用python在neo4j中顺序插入顶点和边。当我添加边时,现有节点无法识别。无论我使用的是py2neo还是bulbs,我都得到了类似的错误信息。

注意,我使用的是: linux64 python2.7 bulbs0.3 py2ne1.5 ne4j-community1.8.2 1.8.2

使用灯泡:

代码语言:javascript
复制
>>> from bulbs.neo4jserver import Graph
>>> g = Graph()
>>> g.vertices.create(name="James")
>>> g.vertices.create(name="Julie")
>>> g.edges.create(james, "knows", julie)

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-46-9ba24256218d> in <module>()
----> 1 g.edges.create(james, "knows", julie)

NameError: name 'james' is not defined

使用py2neo

代码语言:javascript
复制
from py2neo import neo4j
graph=neo4j.GraphDatabaseService()
node=graph.create({"name":'James'},{'name':'Julie'})
rel=graph.create((james,"knows",julie))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-8-591f826cfd05> in <module>()
      2 graph=neo4j.GraphDatabaseService()
      3 node=graph.create({"name":'James'},{'name':'Julie'})
----> 4 rel=graph.create((james,"knows",julie))

NameError: name 'james' is not defined

此外,如果我使用bulbs而不是neo4j,我得到了同样的错误。

代码语言:javascript
复制
>>> from bulbs.rexster import Graph
>>> g = Graph()
>>> g.vertices.create(name="James")
>>> g.vertices.create(name="Julie")
>>> g.edges.create(james, "knows", julie)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-2cfb5faa42d1> in <module>()
      3 g.vertices.create(name="James")
      4 g.vertices.create(name="Julie")
----> 5 g.edges.create((james, "knows", julie))

NameError: name 'james' is not defined

这是怎么回事?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-27 22:21:56

您的应用程序变量jamesjulie不会简单地通过创建具有类似name属性的节点来自动创建。您尚未共享任何py2neo代码,我也不熟悉灯泡,但在py2neo中,您需要执行以下操作:

代码语言:javascript
复制
from py2neo import neo4j
graph_db = neo4j.GraphDatabaseService()
james, julie = graph_db.create(node(name="James"), node(name="Julie"))
graph_db.create(rel(james, "KNOWS", julie))

当然,如果您愿意,也可以在同一个语句(和批处理)中创建节点和关系:

代码语言:javascript
复制
from py2neo import neo4j
graph_db = neo4j.GraphDatabaseService()
james, julie, friendship = graph_db.create(
    node(name="James"), node(name="Julie"), rel(0, "KNOWS", 1)
)
票数 2
EN

Stack Overflow用户

发布于 2013-05-16 11:28:12

您没有在create语句上设置jamesjulie变量。

下面是正确的代码:

代码语言:javascript
复制
>>> from bulbs.neo4jserver import Graph
>>> g = Graph()
>>> james = g.vertices.create(name="James")
>>> julie = g.vertices.create(name="Julie")
>>> g.edges.create(james, "knows", julie)

有关更多示例,请参阅Bulbs Quickstart

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16250928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档