1. 安装py2neo
打开命令行终端cmd, 输入pip install 包名 即可安装。
pip install py2neo
2. 启动neo4j
1)cmd 以管理员身份运行,输入
neo4j.bat console
2)浏览器打开网址:(cmd不要关闭)
3. 导入数据
见neo4j(3.5.8)数据库切换、csv文件的导入和导出-CSDN博客
4. 连接Neo4j数据库
在pycharm中创建代码:
# 创建一个与运行在localhost的Neo4j数据库的连接
from py2neo import Graph
# graph = Graph(host="localhost", port=7687, user="neo4j", password="password")
graph = Graph('http://localhost:7474', auth=("neo4j", "neo4j123"))
# 查询节点的数量
query = """
MATCH (p:人物)
RETURN p, id(p) AS id
"""
result = graph.run(query).data()
# 初始化邻接矩阵和姓名属性字典
adj_matrix = []
name_dict = {}
# 填充姓名属性字典
for record in result:
node_id = record['id']
node_name = record['p']['姓名']
name_dict[node_id] = node_name
adj_matrix.append([0] * len(result))
# 创建一个字典,将节点的Neo4j ID映射到邻接矩阵索引位置
neo4j_id_map = {}
for i, record in enumerate(result):
node_id = record['id']
neo4j_id_map[node_id] = i
# 查询关系并填充邻接矩阵
query = """
MATCH (p1:人物)-[r]->(p2:人物)
RETURN id(p1) AS id1, id(p2) AS id2, r.权重 AS weight
"""
result = graph.run(query).data()
# 重新填充邻接矩阵
for record in result:
id1 = record['id1']
id2 = record['id2']
weight = record['weight']
adj_matrix[neo4j_id_map[id1]][neo4j_id_map[id2]] = weight
adj_matrix[neo4j_id_map[id2]][neo4j_id_map[id1]] = weight # 考虑反向关系,填充邻接矩阵的对称位置
# 打印带有姓名属性的邻接矩阵
print("Adjacency matrix:")
print("\t", end="")
for node_id in sorted(name_dict.keys()):
print(name_dict[node_id], end="\t")
print()
for i, row in enumerate(adj_matrix):
print(name_dict[sorted(name_dict.keys())[i]], end="\t")
print("\t".join(map(str, row)))
# 关闭数据库连接
# py2neo 中没有显式关闭连接的方法,连接会在不再使用时自动关闭。
5.结果展示
人物关系的邻接矩阵如下: