首页 > 解决方案 > 如何将networkX图导入neo4j?

问题描述

我创建了一个图表networkX,我正在使用 neonx 将其导入到neo4j本地主机上。我有一个networkX类型图叫做G. 下面是代码:

data1 = json_graph.node_link_data(G)
H = json_graph.node_link_graph(data1)

results = neonx.write_to_neo("http://localhost:7474/db/data/", H, 'LINKS_TO')

我得到的错误是:

Traceback (most recent call last):
  File "/Users/aman/venv/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 2961, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-5-0d401e8987b7>", line 31, in <module>
    results = neonx.write_to_neo("http://localhost:7474/db/data/", H, 'LINKS_TO')
  File "/Users/aman/venv/lib/python3.7/site-packages/neonx/neo.py", line 86, in write_to_neo
    batch_url = all_server_urls['batch']
KeyError: 'batch'

标签: pythonneo4jnetworkx

解决方案


最好的方法是转储 networkx 图并将其导入 Neo4j。

优点:

  • 您不需要与 Neo4j 服务器建立有效连接
  • 转储一次,随时随地加载。您已保存版本/备份。

转储networkx图:

nx.write_graphml(g, 'path/to/file.graphml')

加载到 Neo4j:

  • 从这里为 Neo4j 安装 apoc 插件
  • apoc.import.file.enabled=true在 conf/neo4j.conf 中启用
  • 将您的图形转储file.graphml放在import/文件夹中
cypher-shell -a bolt://localhost:7687 "call apoc.import.graphml('file.graphml', {})"

或在浏览器中:

call apoc.import.graphml('file.graphml', {})

更多细节:


推荐阅读