欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python使用py2neo创建neo4j的节点和关系

时间:2022-10-17 11:20:35|栏目:Python代码|点击:

1.核心代码

使用py2neo连接neo4j的方法:

from py2neo import Graph

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

根据dict创建Node:

from py2neo import Node

node = Node(**{"key":"value"})
graph.create(node)

创建关系:

from py2neo import Relationship

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)

2.完整示例代码

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()

效果图:

上一篇:python每天定时运行某程序代码

栏    目:Python代码

下一篇:Python使用Keras OCR实现从图像中删除文本

本文标题:python使用py2neo创建neo4j的节点和关系

本文地址:http://www.codeinn.net/misctech/216564.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有