python - 无法在Python中重现灯泡/py2neo来创建边缘(关系)

标签 python neo4j graph-databases bulbs

我正在尝试使用 python 在 Neo4j 中顺序插入顶点和边。当我添加边时,现有节点不会被识别。无论我使用 py2neo 还是灯泡,我都会收到类似的错误消息。

请注意我正在使用: linux64 python 2.7 灯泡0.3 py2neo1.5 neo4j-community1.8.2

带灯泡:

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

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

此外,如果我使用 rexster 而不是 neo4j,我也会遇到与 bulbs 相同的错误,即

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

这里出了什么问题?

谢谢

最佳答案

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

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

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

from py2neo import neo4j
graph_db = neo4j.GraphDatabaseService()
james, julie, friendship = graph_db.create(
    node(name="James"), node(name="Julie"), rel(0, "KNOWS", 1)
)

关于python - 无法在Python中重现灯泡/py2neo来创建边缘(关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16250928/

相关文章:

Neo4j vs OrientDB 对象映射选项 vs Tinkerpop Frames

Python 显式 FTP 不协商 TLS

python - 按列而不是行填充 matplotlib 子图

image - neo4j存储和流传输视频和图像的最佳做法?

sparql - 在 Microsoft SQL Server 2017 图形数据库中查询可选关系的语法?

java - Neo4j 中 GraphDatabaseServer 和 BOLT 的区别

python - Jupyter Notebook - 在函数内部绘图 - 图未绘制

python - 我正在尝试使用自定义 RBF 内核在 scikit-learn 中实现 SVM,但它显示错误,该怎么办?

ssl - 如何在 Neo4j 中使用 SSL 证书而不是自签名证书(或 snakeoil.cert)

python - python 单元测试中的 Neo4j 临时数据库