开发者

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

开发者 https://www.devze.com 2022-12-10 12:50 出处:网络 作者: 呆萌的代Ma
1.核心代码 使用py2neo连接neo4j的方法: from py2neo import Graph graph = Graph(\"http://localhost:7474\", auth=(\"neo4j\", \"neo4j\"))

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属性
  :p编程客栈aram 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, RelationsEukEczUhip
  from py2neo import NodeMatcher

  node_matcher = NodeMatcher(graph)
  node1 = node_matcher.match(**match_node1).first()
  # 自动创建node
  if not node1:
    if node1_label:
EukEczU      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使用py2neo创建neo4j的节点和关系

到此这篇关于python使用py2neo创建neo4j的节点和关系的文章就介绍到这了,更多相关python使用py2neo创建neo4j的节点和关系内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号