python使用py2neo创建neo4j的节点和关系
作者:呆萌的代Ma 时间:2021-09-25 01:03:28
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
标签:python,py2neo,neo4j,节点,关系
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
在MySQL数据库中如何来复位根用户的密码
2008-12-03 16:57:00
Python实现直播弹幕自动发送功能
2021-08-23 12:31:37
![](https://img.aspxhome.com/file/2023/7/70647_0s.jpg)
从SNS看社会化界面设计 I
2009-02-19 12:21:00
![](https://img.aspxhome.com/file/UploadPic/20092/19/01-43s.jpg)
记录一篇关于redux-saga的基本使用过程
2023-07-15 16:43:19
Python常见数据结构详解
2021-10-28 22:07:33
防采集,几种觉得有用的防采集方法
2009-09-03 13:30:00
关于JSON以及JSON在PHP中的应用技巧
2023-11-16 00:03:38
用javascript来实现仿gogle动画导航
2007-11-30 14:15:00
![](https://img.aspxhome.com/file/UploadPic/200711/30/20071130141752445s.gif)
解决django migrate报错ORA-02000: missing ALWAYS keyword
2023-04-15 14:19:54
![](https://img.aspxhome.com/file/2023/4/70674_0s.jpg)
asp生成带有样式的word文件方法
2011-04-18 10:30:00
line-height 属性的继承问题
2008-07-26 12:27:00
php下载文件源代码(强制任意文件格式下载)
2023-10-10 07:53:20
Go语言使用swagger生成接口文档的方法
2023-08-28 06:23:23
![](https://img.aspxhome.com/file/2023/4/100794_0s.jpg)
SQL Server数据库查询优化的常用方法总结
2008-12-10 14:43:00
在Python中通过getattr获取对象引用的方法
2023-08-24 23:32:33
影响SQL Server性能的三个关键点
2009-03-09 13:11:00
DOM_window对象属性之--clipboardData对象操作代码
2011-02-05 10:49:00
asp 删除数据并同时删除图片的代码
2011-02-28 10:39:00
python2.x实现人民币转大写人民币
2023-06-26 10:35:53
Python基于正则表达式实现计算器功能
2021-08-17 13:00:02