如何用Python将嵌入的Neo4j图数据库转换为GraphML?
我想把我嵌入的Neo4j图数据库存储为GraphML格式,这样我就可以用像yEd这样的工具来绘制它。
我正在用python27来管理这个图数据库。
有没有人知道怎么做到这一点?
2 个回答
0
如果neo4j.py不支持导出为GraphML格式,或者因为其他原因你无法使用Neo4j和Java做到这一点,那么你就需要自己写一个导出工具。
通过一些简单的技巧,你可以使用NetworkX来实现,因为它支持从GraphML导入和导出。你只需要找到一种方法,把你的Neo4j图导入到NetworkX中,然后直接导出为GraphML格式。
1
如果你能在不影响当前工作的情况下进行操作,也就是说你需要先关闭正在使用嵌入式数据库的程序,然后等导出完成后再重新启动它,你可以使用Gremlin来完成这个任务。以下是你需要用到的命令:
g = new Neo4jGraph("/YOUR/GRAPH/DIRECTORY")
writer = new GraphMLWriter(g)
out = new FileOutputStream("/YOUR/GRAPHML/file.graphml")
writer.outputGraph(out)
writer.setNormalize(true)
out.close()
这样做会生成一个漂亮的graphml文件,适合导入到像Gephi或Cytoscape这样的工具中进行查看。
如果你需要在程序运行时导出图形,你就需要用到像jython这样的工具来运行你的python脚本,然后通过导入com.tinkerpop.blueprints
中的对象来使用上面的命令。