python使用py2neo创建neo4j的节点和关系
作者:呆萌的代Ma 发布时间:2021-09-25 01:03:28
标签:python,py2neo,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属性
: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


猜你喜欢
- SQL Server 联机帮助给出了详细说明。 -->目录 -->SQL Server架构 --&
- ...mapstate和...mapgetters的区别…mapstate当一个组件需要获取多个状态时候,将这些状态都
- 本文实例讲述了Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法。分享给大家供大家参考。具体如下:这个东东本来是做来给公司数据
- CAST函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型语法CAST(value AS datatype)AS关键字用于分隔两个
- 大多数程序员考虑编程时,他们都要设想用于编写应用程序的 命令式样式和技术。最受欢迎的通用编程语言(包括 Python 和其它面向对象的语言)
- 表单递交合法性检测-只接受数字。如下代码加入HTML的<head>区:<SCRIPT LANGUAGE=&quo
- 一、观察者模式观察者模式,必须包含 “观察者” 和 “被观察者&rdqu
- 下拉框连动JavaScript代码,市区二级联动多级联动下拉选择框,动态获取下一级琥珀无限级联动菜单-JavaScript版 <htm
- 函数的返回值一个函数执行后可以返回多个返回值def measure(): print('测量开始。。。。&
- 对象数组中匹配某个属性值如果有一个js对象数组,一个变量如下var a = [ {  
- 正在看的ORACLE教程是:ORACLE常见错误代码的分析与解决(三)。  
- 不知不觉,玩爬虫玩了一个多月了。我愈发觉得,爬虫其实并不是什么特别高深的技术,它的价值不在于你使用了什么特别牛的框架,用了多么了不起的技术,
- 最近刚重构完,我们的一个项目,由原来的jsp模式改为了前后端分离,前端选型为vue,开发完成之后第一件时间就是要部署测试,服务端选的是Apa
- 思考题假设有一张订单表 order,主要包含了主键订单编码 order_no、订单状态 status、提交时间 create_time 等列
- 提起Apple,大部分人都会提起Apple的设计,除了Apple里拥有一批天才设计师外,还因为乔布斯对于设计有着苛刻的要求。所以在IT界,A
- 内容摘要: ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种
- select UNIX_TIMESTAMP(ADDDATE(NOW(),INTERVAL -60 DAY))首先根据now()获得当前时间使
- FastText是一个三层的神经网络,输入层、隐含层和输出层。FastText的优点:使用浅层的神经网络实现了word2vec以及文本分类功
- 将图片放入到白色或黑色背景图中,前提是图片小于背景图片的尺寸,原图为如下,长为192,宽为64。1.将图片放入到白色背景图(224,224)
- 在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引但在nump