欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

python使用py2neo根据关系自动创建neo4j的节点与关系

时间:2023-08-16
文章目录

核心代码完整示例代码

使用py2neo构建neo4j图模型小demo:https://blog.csdn.net/weixin_35757704/article/details/112525629

核心代码 使用py2neo连接neo4j的方法:

from py2neo import Graphgraph = Graph("http://localhost:7474", auth=("neo4j", "neo4j"))graph.delete_all() # 删除已有的所有内容

根据dict创建Node:

from py2neo import Nodenode = Node(**{"key":"value"})graph.create(node)

创建关系:

from py2neo import Relationshiprelation = Relationship(node1, relation, node2)graph.create(relation)

用到的工具函数是:

def create_relation(graph, match_node1: dict, match_node2: dict, relation: str, node1_label=None, node2_label=None): """自动创建节点与关系 :param graph: 图 :param match_node1: 节点1属性 :param match_node2: 节点2属性 :param relation: 关系 :param node1_label: 节点1的标签 :param node2_label: 节点2的标签 """ from py2neo import Node, Relationship from py2neo import NodeMatcher node_matcher = NodeMatcher(graph) node1 = node_matcher.match(**match_node1).first() # 自动创建node if not node1: if node1_label: node1 = Node(node1_label, **match_node1) else: node1 = Node(**match_node1) node2 = node_matcher.match(**match_node2).first() if not node2: if node2_label: node2 = Node(node2_label, **match_node2) else: node2 = Node(**match_node2) # 创建关系 relation = Relationship(node1, relation, node2) graph.create(relation)

完整示例代码

def create_relation(graph, match_node1: dict, match_node2: dict, relation: str, node1_label=None, node2_label=None): """自动创建节点与关系 :param graph: 图 :param match_node1: 节点1属性 :param match_node2: 节点2属性 :param relation: 关系 :param node1_label: 节点1的标签 :param node2_label: 节点2的标签 """ from py2neo import Node, Relationship from py2neo import NodeMatcher node_matcher = NodeMatcher(graph) node1 = node_matcher.match(**match_node1).first() # 自动创建node if not node1: if node1_label: node1 = Node(node1_label, **match_node1) else: node1 = Node(**match_node1) node2 = node_matcher.match(**match_node2).first() if not node2: if node2_label: node2 = Node(node2_label, **match_node2) else: node2 = Node(**match_node2) # 创建关系 relation = Relationship(node1, relation, node2) graph.create(relation)def main(): from py2neo import Graph graph = Graph("http://localhost:7474", auth=("neo4j", "neo4j")) graph.delete_all() # 删除已有的所有内容 create_relation(graph, {"name": "小a", "age": 12}, {"name": "小b", "age": 22}, "relation1", ) create_relation(graph, {"name": "小a", "age": 12}, {"name": "小c", "age": 32}, "relation2", "people", "people") create_relation(graph, {"name": "小c", "age": 32}, {"name": "小d", "age": 42}, "relation1", "people", "people")if __name__ == '__main__': main()

效果图:

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。