自学内容网 自学内容网

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()可进行删除关系批处理,但删除满足条件的结点,要执行上述删除代码
 


原文地址:https://blog.csdn.net/yzx991013/article/details/145191508

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!