日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python使用py2neo創建neo4j的節點和關系_python

作者:呆萌的代Ma ? 更新時間: 2022-04-18 編程語言

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

效果圖:

原文鏈接:https://blog.csdn.net/weixin_35757704/article/details/122766877

欄目分類
最近更新