赞
踩
打开命令行终端cmd, 输入pip install 包名 即可安装。
pip install py2neo
1)cmd 以管理员身份运行,输入
neo4j.bat console
2)浏览器打开网址:(cmd不要关闭)
见neo4j(3.5.8)数据库切换、csv文件的导入和导出-CSDN博客
在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 中没有显式关闭连接的方法,连接会在不再使用时自动关闭。
人物关系的邻接矩阵如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。