Узлы границы запроса и свойства границы

Я хочу получить список свойств ребер в виде

[ {'src': nodeid, 'dst': nodeid, 'item': itemid},
  {'src': nodeid, 'dst': nodeid, 'item': itemid},
  ...
]

См. этот вопрос, я формулирую запрос в gremlin_python следующим образом:

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
                project('src','dst','item'). \
                    by(outV().id()). \
                    by(inV().id()) \
                    by(coalesce(values('item_id'),constant(''))). \
                .toList()

Однако я получил следующую ошибку

TypeError: 'Column' object is not callable

Я могу получить список src и dst с помощью

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
                project('src','dst'). \
                    by(outV().id()). \
                    by(inV().id()) \
                .toList()

Я пропустил какое-нибудь ключевое слово python? Или я могу узнать, в чем заключается ограничение в gremlin python?


Обновления:

В моем случае у меня есть обходной путь. Однако будут извлечены только ребра, содержащие (src, dst, item).

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
                has('item'). \
                project('src','dst'). \
                    by(outV().id()). \
                    by(inV().id()) \
                    by('item'). \
                toList()

person twfx    schedule 05.12.2018    source источник


Ответы (1)


Я предполагаю, что values('item_id') как-то путают с перечислением Column.values. Вам нужен шаг обхода values(), который предоставляется классом __. После импортирования класса __ попробуйте изменить свой код на:

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
            project('src','dst','item'). \
                by(outV().id()). \
                by(inV().id()) \
                by(coalesce(__.values('item_id'),constant(''))). \
            .toList()
person stephen mallette    schedule 05.12.2018
comment
Я получил TypeError: values ​​() не принимает аргументов (1) с этим. Кстати, я сделал импорт из gremlin_python.process.graph_traversal import __ и statics.load_statics (globals ()) - person twfx; 06.12.2018