编程语言
首页 > 编程语言> > Python networkx和持久性(也许在neo4j中)

Python networkx和持久性(也许在neo4j中)

作者:互联网

我有一个应用程序,它每秒可在内存中创建数千个图形.我希望找到一种方法来保留这些以便以后查询.它们并不是特别大(也许最多约1k个节点).

我需要能够存储整个图形对象,包括节点属性和边属性.然后,我需要能够基于节点中的时间属性在特定时间窗口内搜索图.

有没有一种简单的方法可以将该数据强制转换为neo4j?我还没有找到任何例子.虽然我发现了几个python库,包括一个嵌入式neo4j和一个rest客户.

是手动遍历图形并以这种方式存储图形的常用方法吗?

有没有更好的持久性替代方案?

解决方法:

Networkx有几种序列化方法.

在您的情况下,我将选择graphml序列化:

http://networkx.github.io/documentation/latest/reference/readwrite.graphml.html

使用起来非常简单:

import networkx as nx
nx.write_graphml('/path/to/file')

要将其加载到Neo4j中(如果您具有Neo4j< 2.0),则可以使用Tinkerpop Gremlin将您的graphml转储加载到Neo4J中

g.loadGraphML('/path/to/file')

Tinkerpop非常有用-不仅用于序列化/反序列化.

它将允许您使用带有“方言”称呼的不同图形数据库(前提是它们具有大多数人都可以使用的“ Blueprint”驱动程序)

标签:directed-graph,neo4j,networkx,python
来源: https://codeday.me/bug/20191123/2066395.html