Gremlin for Python returns 遍历命令列表而不是数据

Gremlin for Python returns a list of traversal commands instead of data

我正在尝试使用带有 Python 3.7 的 AWS Lambda 函数来访问我的 Neptune 数据库。对于一个非常简单的测试,我的 lambda 中有以下代码。

    g = graph.traversal().withRemote(DriverRemoteConnection('ws://[endpoint]:8182/gremlin','g'))
    g.addV('student').property('name', 'Jeffery').property('GPA', 4.0)

    students = g.V('student').values('name')
    print(numVert)

在尝试了许多不同的遍历之后,我从打印语句中得到的唯一值是 [['V', 'student'], ['values', 'name']] 或我要执行的命令的一些类似列表表示,而不是数据本身(如 Jeffrey)。

我是否遗漏了一些明显的错误?我尝试使用 toList 指定我想要的结果,但没有帮助。谢谢!

从代码中使用 Gremlin 时,您需要始终以终端步骤结束查询,例如 toListnextiterate 等。您看到的只是字节将 query/traversal 的“字符串”形式编码为由于缺少终端步骤而未实际执行查询。您还需要在搜索学生时使用 hasLabelV() 步骤采用一个或多个 ID 的可选列表而不是标签。

g.addV('student').property('name', 'Jeffery').property('GPA', 4.0).next()
students = g.V().hasLabel('student').values('name').toList()
print(students)

这是你的查询 运行 使用 Gremlin Python

>>> g.addV('student').property('name', 'Jeffery').property('GPA', 4.0).next()
v[9eb98696-d979-c492-ab2d-a36a219bac6c]

>>> students = g.V().hasLabel('student').values('name').toList()

>>> print(students)
['Jeffery']