ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-11-23 08:07:09  阅读:784  来源: 互联网

标签:directed-graph neo4j networkx python


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有