Как получить значение свойства вершины в Python gremlin

Это может быть легко, но я действительно борюсь с этой проблемой. Я использую gremlin python lib и aws neptune db. Я знаю идентификатор вершины, я просто хочу получить значение (тип String в python) одного из свойств вершины и обновить его.

Я пытался сделать вот так:

print(g.V(event['securityEventManagerId']).values('sourceData'))
print(g.V(event['securityEventManagerId']).property('sourceData'))
print(g.V(event['securityEventManagerId']).property('sourceData').valueMap())
.....

Но я просто печатаю какой-то объект gremlin на Python, например GraphTraversal, не может получить значение как string

Может кто-нибудь мне помочь?

1 ответ

Решение

Вы должны использовать конечный шаг, без них ваш запрос не будет выполнен.

Из документации tinkerpop:

Обычно, когда шаг присоединяется к обходу, обход возвращается. Таким образом, обход строится плавным монадическим способом. Однако некоторые шаги не возвращают обход, а вместо этого выполняют обход и возвращают результат. Эти шаги известны как конечные шаги (терминал), и они объясняются в приведенных ниже примерах.

В вашем случае вам следует сделать:

g.V(event['securityEventManagerId']).values('sourceData').next()

Вот отрывок:

for p in g.V(v).properties():
   print("key:",p.label, "| value: " ,p.value)

где v - вершина, которую вы хотите проверить.

Другие вопросы по тегам