当前位置:   article > 正文

python连接neo4j构建邻接矩阵_python 连接neo4j

python 连接neo4j

 1. 安装py2neo

打开命令行终端cmd, 输入pip install 包名 即可安装。

pip install py2neo

2. 启动neo4j

1)cmd 以管理员身份运行,输入

neo4j.bat console

2)浏览器打开网址:(cmd不要关闭)

http://localhost:7474/browser/

3. 导入数据

neo4j(3.5.8)数据库切换、csv文件的导入和导出-CSDN博客

4. 连接Neo4j数据库

在pycharm中创建代码:

  1. # 创建一个与运行在localhost的Neo4j数据库的连接
  2. from py2neo import Graph
  3. # graph = Graph(host="localhost", port=7687, user="neo4j", password="password")
  4. graph = Graph('http://localhost:7474', auth=("neo4j", "neo4j123"))
  5. # 查询节点的数量
  6. query = """
  7. MATCH (p:人物)
  8. RETURN p, id(p) AS id
  9. """
  10. result = graph.run(query).data()
  11. # 初始化邻接矩阵和姓名属性字典
  12. adj_matrix = []
  13. name_dict = {}
  14. # 填充姓名属性字典
  15. for record in result:
  16. node_id = record['id']
  17. node_name = record['p']['姓名']
  18. name_dict[node_id] = node_name
  19. adj_matrix.append([0] * len(result))
  20. # 创建一个字典,将节点的Neo4j ID映射到邻接矩阵索引位置
  21. neo4j_id_map = {}
  22. for i, record in enumerate(result):
  23. node_id = record['id']
  24. neo4j_id_map[node_id] = i
  25. # 查询关系并填充邻接矩阵
  26. query = """
  27. MATCH (p1:人物)-[r]->(p2:人物)
  28. RETURN id(p1) AS id1, id(p2) AS id2, r.权重 AS weight
  29. """
  30. result = graph.run(query).data()
  31. # 重新填充邻接矩阵
  32. for record in result:
  33. id1 = record['id1']
  34. id2 = record['id2']
  35. weight = record['weight']
  36. adj_matrix[neo4j_id_map[id1]][neo4j_id_map[id2]] = weight
  37. adj_matrix[neo4j_id_map[id2]][neo4j_id_map[id1]] = weight # 考虑反向关系,填充邻接矩阵的对称位置
  38. # 打印带有姓名属性的邻接矩阵
  39. print("Adjacency matrix:")
  40. print("\t", end="")
  41. for node_id in sorted(name_dict.keys()):
  42. print(name_dict[node_id], end="\t")
  43. print()
  44. for i, row in enumerate(adj_matrix):
  45. print(name_dict[sorted(name_dict.keys())[i]], end="\t")
  46. print("\t".join(map(str, row)))
  47. # 关闭数据库连接
  48. # py2neo 中没有显式关闭连接的方法,连接会在不再使用时自动关闭。

5.结果展示

人物关系的邻接矩阵如下:

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/481633
推荐阅读
相关标签
  

闽ICP备14008679号