Python操作之Neo4j

Python操作之Neo4j(一)

  • 目录
    • 连接Neo4j图数据库
      • 首先下载py2neo第三方包
      • 忘记neo4j密码
      • 连接neo4j
    • 增加节点和关系
    • 删除节点和关系
    • 查找节点和关系

目录

连接Neo4j图数据库

首先下载py2neo第三方包

pip install  py2neo

忘记neo4j密码

打开neo4j安装目录的dbms文件夹,找到auth文件并删除,重新启动neo4j,此时使用浏览器访问neo4j就可以使用默认的用户名密码登录,之后再修改自己的账号密码。
Python操作之Neo4j_第1张图片

重启neo4j数据库可以打开服务,找到neo4j graph database进行重启
Python操作之Neo4j_第2张图片

连接neo4j

from py2neo import Graph, Node, Relationship

##连接neo4j数据库,输入地址、用户名、密码
##注意:这句代码适用老版的py2neo,即适用于2021.1之前的
graph = Graph('http://localhost:7474', username='neo4j', password='lyq0807582')
##适用于新版
graph = Graph('http://localhost:7474', auth=("neo4j", "lyq0807582"))

matcher = NodeMatcher(graph) #创建关系需要用到

增加节点和关系

##创建结点
node_1 = Node(label='book', name='黄帝内经')  #label标签名book ,name属性名黄帝内经
node_2 = Node('book', name='素问')
node_3 = Node('book', name='灵枢')
node_4 = Node('book', name='内经')
graph.create(node_1)#节点创建到数据库
graph.create(node_2)
graph.create(node_3)
graph.create(node_4)

Python操作之Neo4j_第3张图片

增加节点成功表示连接成功,可以进行相应的操作

# ##创建关系
# # 分别建立了node_1指向node_2和node_3,node_1指向node_4三条关系,关系的类型为"包括、包括、别称"。
node_1_include_node_2 = Relationship(node_1, '包括', node_2)
node_1_include_node_3 = Relationship(node_1, '包括', node_3)
node_1_elsename_node_4 = Relationship(node_1, '别称', node_4)
graph.create(node_1_include_node_2)
graph.create(node_1_include_node_3)
graph.create(node_1_elsename_node_4)

Python操作之Neo4j_第4张图片
重复运行创建节点代码将会重复创建相同的节点

删除节点和关系

#删除指定节点,只删除一个没有关系节点
node=matcher.match('book').where(name='黄帝内经').first() #先匹配,叫黄帝内经的第一个结点
graph.delete(node)

Python操作之Neo4j_第5张图片

#删除指定关系和节点
b = list(matcher.match('book').where(name='黄帝内经'))[0]
graph.delete(b)

Python操作之Neo4j_第6张图片

查找节点和关系

#查找所有节点
for node in graph.nodes:
    print(graph.nodes[node])

Python操作之Neo4j_第7张图片

#查询指定节点
n=graph.nodes.match("book")
for i in n:
    print(i)

Python操作之Neo4j_第8张图片

#查找所有关系
rps = graph.relationships
for r in rps:
    print(rps[r])
#删除有关内经的节点和关系
try:
    graph.run('match(n:book{name:"内经"}) detach delete n')
    print('删除成功')
except:
    print('删除失败')

Python操作之Neo4j_第9张图片

#转化为numpy数据
b = graph.run('match(n:book) return *').to_ndarray()
print(b)

Python操作之Neo4j_第10张图片

#以字典列表的形式返回查询的结果数据
b = graph.run('match(n:book) return *').data()
print(b)

你可能感兴趣的:(python,知识图谱,数据库)