NetworkXError:输入不是用于转换的已知数据类型

问题描述

我想在 VM 中使用 Neo4j GraphDB 创建一个 networkx 图。我已经在网上尝试了很多东西,但我遇到了同样的错误,当我尝试使用 py2neo 来做同样的事情时,错误会弹出,并且在通过 neo4j BoltDriver 直接加载时也会出现。

实现:

from neo4j import GraphDatabase
import networkx as nx

driver = GraphDatabase.driver(credentials['url'],auth=(credentials['user'],credentials['passwd']))

G = nx.Graph(driver)

有什么我遗漏的吗?我已经阅读了 networkx 的文档,但遗憾的是没有与我面临的问题相关。

解决方法

我不确定您期望在这里发生什么,但是您将连接对象(驱动程序)传递到 NetworkX Graph 数据类型的构造函数中。错误很明显是因为 NetworkX 不知道如何处理那个 Driver 对象。

相反,您需要通过运行 Cypher 查询从数据库中提取一些数据,然后将该数据传递给 Graph 构造函数,假设您也将其强制转换为 NetworkX可以接受。