py2neo是在python中实现neo4j操作的库。
安装库(cmd)
pip install py2neo
系统连接到库(cmd)
neo4j.bat console
会给出:2022-09-26 01:30:48.020+0000 INFO Remote interface available at http://localhost:7474/
这个系统时间不是北京时间,是计算机领域常用的世界时。
python访问库,清除原有的图
from py2neo import Graph, Node, Relationship
neo_graph = Graph("http://localhost:7474/db/data/", auth=(账号,密码))
neo_graph.delete_all()#清除原有的图
测试结点请参考此博文:【知识图谱】py2neo基本操作(2021-11-11)_ZSYL的博客-CSDN博客_py2neo
根据numpy数组批量创建多属性结点的代码示例
def Batch_Node_Create(data,num,node_label,neo_graph):
for i in range(0,num):
node = Node(node_label,x=int(data[i,0]),y=int(data[i,1]),h=int(data[i,2]))
neo_graph.create(node)
查询已经创建的某个标签的结点
matcher_1 = NodeMatcher(neo_graph)
node = matcher_1.match("标签名称")
result_1 = list(node)
print(result_1 )
#必须要用result输出node,否则不是可视化的数据格式
#返回值示例:[(_272:dem {h: 8, x: 0, y: 24}), (_273:dem {h: 9, x: 0, y: 48})]的
建立结点的关系
获取匹配结果的方法是:
from py2neo import Graph from py2neo.matching import * g = Graph() nodes = NodeMatcher(g) answer=nodes.match("Person", name="Keanu Reeves") #获取第一个结果 answerfirst=answer.first()
而建立关系的代码是:
relation1 = Relationship(node1, "visible",node2) graph.create()#建立
这里出现了一个问题,node1和node2不知道怎么从已经输入数据库的数据中调用,而nodes.match.first()只能取出第一个结果,没用。
我找到了迭代的代码,这样就可以一个个访问到指定的结点:
nodes = NodeMatcher(neo_graph) node_ans=nodes.match("dem") for node in iter(node_ans): print(node)
访问到指定结点的属性
dem_node['x']