我想以
的形式获取边缘属性的列表[ {'src': nodeid, 'dst': nodeid, 'item': itemid},
{'src': nodeid, 'dst': nodeid, 'item': itemid},
...
]
参考this question,我在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()
答案 0 :(得分:0)
我的猜测是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()