python - 有没有办法将 gremlinpython 图转换为 networkx 图

标签 python networkx gremlin janusgraph gremlinpython

我想将 gremlinpython 图形 (gremlin_python.struct.graph.Graph) 转换为 networkx 图形。

我发现使用包 ipython-gremlin ( https://github.com/davebshow/ipython-gremlin ),可以将顶点转换为 pandas 数据帧,将边转换为 networkx.classes.multidigraph.MultiDiGraph 但该包已过时,我找不到他们进行转换的代码位置。有没有办法进行转换?

谢谢!

最佳答案

您可能需要编写一些代码才能做到这一点。在使用 subgraph 步骤返回我感兴趣的图表部分,然后迭代创建 NetworkX 顶点和边之前,我已经完成了此操作。这相当简单。唯一需要注意的问题是,当前的 Gremlin Python 客户端使用默认的 Tornado 最大结果帧大小,我认为是 10mb,因此如果您的子图结果超过该大小,您将遇到异常。这是一个简单的示例,它在航线数据集中查找从 SAF 机场出发的航线星图,并从中创建 NetworkX 有向图

import networkx as nx
G = nx.DiGraph()
sg = g.V().has('code','SAF').outE().subgraph('sg').cap('sg').next()
for e in sg['@value']['edges']:
    G.add_edge(e.outV.id,e.inV.id,elabel=e.label)

print(G.nodes())
print(G.edges())

运行时结果为

['44', '13', '20', '31', '8']
[('44', '13'), ('44', '20'), ('44', '31'), ('44', '8')]

关于python - 有没有办法将 gremlinpython 图转换为 networkx 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66281752/

相关文章:

python - 从 SQLAlchemy+Postgres 中的 IntegrityError 中获取约束名称

python - 使用networkx在Python中以graph6格式保存图形

graph - 使节点更加分离(图形可视化)

python - 如何使用 python 为 janusgraph 设置模式以进行批量加载

python - Django对象扩展/一对一关系问题

python - 使用Python获取日期字符串的最佳方法

python - 在 PyQt5 中对齐弹出窗口小部件

python - 使边从 Networkx 中的节点外部开始

database - 从控制台创建 Neo4j 数据库时,Gremlin 创建什么版本的数据存储?

gremlin - 如何获取 Titan 中的索引键列表?