Star

nebula2-python获取查询sub-graph查询结果,结果中vertex的vid为None

  • nebula 版本:v2-nightly
  • 部署方式(分布式 / 单机 / Docker / DBaaS):docker
  • 硬件信息
    • 磁盘( 推荐使用 SSD)ssd
    • CPU、内存信息:40c 128G
  • 出问题的 Space 的创建方式:使用v2.0.0.0post1的nebula2-python,执行subgraph查询时,返回的结果集中vid为None

而直接在nebula-web中查询subgraph,返回的结果是包含了vid的:

请问是不是我解析result set的方法出了问题,有什么通用的解析nebula2-python中的session.execute()方法返回的结果集的办法吗?
我当前是按照resultset一层一层遍历,感觉有点麻烦:

    for r in sub_graph.rows():
        vertexes, edges = r.values
        # 处理节点
        for vertex in vertexes.value.values:

你可以参考这里的例子
https://github.com/vesoft-inc/nebula-python/blob/master/example/FormatResp.py

我的问题主要不是怎么解析,主要是发现返回的结果中应该有vid的值的地方现在变成了None。

变成None应该是我升级到v2-nightly之后,之前用的是v2-pre-nightly版本来着。之前是可以看到截图中的vid应该就是查询语句中指定的vid,现在升级到v2-nightly,结果集中的vid都是None了。
包括后面的_edge中的vid,也哦度是None。

你不用自己去解析。
rows()接口返回的是未经过处理的原始数据, 你可以使用row_values()接口和value_rapper的方法, 返回的是经过处理的数据。 nebula-python/ResultSet.py at master · vesoft-inc/nebula-python · GitHub
nebula-python/DataObject.py at master · vesoft-inc/nebula-python · GitHub
getSubGraph这块最近代码实现有修改过, 不知道是不是这个原因 @jmq2020

你升级了 nebula 的版本,python client 的版本也要跟着升级

我使用的python client的版本一直都是2.0.0.post1
这应该已经是最新的了
v2-nightly应该用哪个版本的python client?

你好, 我待会儿更新下nebula-python

可以使用 master 分支的源码直接安装,对应的文档 GitHub - vesoft-inc/nebula-python: Client API of Nebula Graph in Python

多谢各位,使用master的源码安装之后,没问题了

浙ICP备20010487号