Gremlin для Python возвращает список команд обхода вместо данных

Я пытаюсь использовать функцию AWS Lambda с Python 3.7 для доступа к моей базе данных Neptune. Для очень простого теста у меня есть следующий код в лямбда-выражении.

    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']] или какое-то подобное представление списка команд, которые я хочу выполнить, вместо самих данных (например, Джеффри).

Я упустил какую-то очевидную ошибку? Я попытался указать, как я хочу получить результат, с помощью toList, что не помогает. Спасибо!


person Randabut    schedule 02.07.2020    source источник


Ответы (1)


При использовании Gremlin из кода вам всегда нужно заканчивать запрос с помощью терминального шага, такого как toList, next или iterate и т. Д. То, что вы видите, - это просто байтовый код для строковой формы вашего запроса / обхода, поскольку запрос фактически не был выполнен из-за к отсутствию конечной ступени. Вам также необходимо использовать hasLabel при поиске студентов. Шаг V() принимает необязательный список из одного или нескольких идентификаторов, а не метку.

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']
person Kelvin Lawrence    schedule 02.07.2020
comment
Отлично, большое спасибо за помощь. Вы получили все это из документации по гремлину? Мне еще предстоит найти страницу о гремлине с четким описанием каждой функции или тем фактом, что вам нужно завершить любой запрос с помощью терминального шага. - person Randabut; 02.07.2020
comment
Посмотрите, помогает ли это плюс связанный сайт GitHub: kelvinlawrence.net/book/PracticalGremlin.html < / а> - person Kelvin Lawrence; 02.07.2020