当前位置: 首页 > article >正文

Neo4j与Python交互

学习笔记:

1、环境与调用问题
使用Python对Neo4j进行查找操作前,应匹配所有结点
代码:
from py2neo import Graph , Node , Relationship,NodeMatcher 
g = Graph('http://localhost:7474/', username='neo4j', password=’********’) 
matcher = NodeMatcher(match_graph) 
nodes = matcher.match('Province') # Province 可根据要求替换
#  当Python环境为3.6版本,neo4j Desktop版本为1.4.8,py2neo版本为4.3.0时,不能使用matcher.match() .all()
如:
for node in nodes:
        print(node['name'])  # name 根据要求替换,无该属性时会返回None
2.版本问题
Neo4j版本1.4.8,Python版本3.6 的条件下 py2neo4.3.0版本无法使用

NodeMatcher(graph).match().all()

py2neo4.0.0版本可使用NodeMatcher(graph).match().all(),但无法与当前版本的Neo4j建立连接

py2neo最新版本无法直接访问Neo4j,情况同py2neo4.0.0版本近似 py2neo3.1.2版本支持Python3.5以下版本

因此推荐使用py2neo 2020.1.0版本
——————————————
 3、修改结点以及删除结点
修改结点
from py2neo import Graph,Node,Relationship,NodeMatcher,Subgraph
match_graph = Graph('http://localhost:7474/', username='neo4j', password=‘*******’)
matcher = NodeMatcher(match_graph)
tx = match_graph.begin()
change_Person_node = matcher.match('Person').all()  # .all()注意版本问题,4.3.0可调用.first(),但无法调用.all() 
print(change_Person_node)
new_Person_nodes = []
for node in change_Person_node:
    node['name']='P'+node['name']
    new_Person_nodes.append(node)
Sub = Subgraph(nodes=new_Person_nodes)
tx.push(Sub) # 应使用py2neo 2020.1.0版本,py2neo 4.3.0版本本条语句报错:AttributeError: 'str' object has no attribute 'graph'
tx.commit()
删除结点
matcher = NodeMatcher(match_graph)
num = len(matcher.match('Person'))
for i in range(num):
    nodes = matcher.match('Person').first()  # 不能使用.all()语句,显示neo4j语法错误 
    match_graph.delete(nodes)
# g.delete()删除关系时会连带删除与其连接的结点
# g.separate()删除关系时只删除关系
# g.separate()可进行删除关系批处理,但删除满足条件的结点,要执行上述删除代码
 


http://www.kler.cn/a/508609.html

相关文章:

  • java使用poi-tl自定义word模板导出
  • DeepSeek-v3在训练和推理方面的优化
  • 2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
  • 从AI原理到模型演进及代码实践 的学习二
  • 动态路由vue-router
  • 从 SQL 语句到数据库操作
  • FFMpeg的一些常用命令
  • 一探究竟:如何高效提取ULL中的当前参数,实现性能与精度的完美平衡
  • 矩阵碰一碰发视频源码技术开发全解析,支持OEM
  • 【9.1】Golang后端开发系列--Gin快速入门指南
  • 机器学习(3):逻辑回归
  • CAP:Serverless + AI 让应用开发更简单
  • 分频器code
  • Java-数据结构-二叉树(配图详解)
  • SQL Server 导入Excel数据
  • 【Gossip 协议】Golang的实现库Memberlist 库简介
  • 深度学习项目--基于LSTM的火灾预测研究(pytorch实现)
  • 下定决心不去读研了。。。
  • Vue3组件通信进阶: 大型项目中Provide/Inject与EventBus的实战应用
  • Python基本概念与实践
  • 非安全函数
  • 华为OD机试E卷 ---最大值
  • Arm 计划涨价高达 300%,并考虑自行研发芯片
  • HTTP 与 SSH 在 Git 中的区别与选择指南
  • OCC+vtk参考Analysis situs
  • 【论文阅读笔记】人工智能胃镜在盲区检测和自主采图中的应用