python - 如何将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'
解决方案
最好的方法是转储 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', {})
更多细节:
推荐阅读
- java - 我如何将 kotlin 代码转换为 java [Android]
- javascript - 修复:如何将已经居中的 Flex 的中间项目居中
- docker - 在 docker-compose (binami/kafka) 中使用 SASL_PLAINTEXT 连接到 Kakfka 代理
- html - HTML/CSS 如何制作这样的按钮?
- dataframe - PySpark 地图功能 - 发送 n 行而不是 1 行来构建列表
- react-native - 按钮 onpress 不适用于自己的组件
- visual-studio-code - VSCode 中的 Gitlens 会根据任何文件更改自动开始 rebase
- java - 尝试使用 Apache POI 在 excel 中导出和着色行时出现异常
- python - Flask 博客,只希望一个用户能够发帖
- c# - 当我尝试运行此代码时,我得到“索引超出范围。必须是非负数且小于集合参数名称的大小”