1.链接数据库
在Pycharm的File->setting->Project Interpreter中添加py2neo并导入架包
graph = Graph('http://localhost:7474', username='neo4j', password='密码')
2.数据读取
result=graph.run("MATCH (n) RETURN n").data()#读取neo4j数据库中的所有数据
record=result[0] #读取表中的第一个数据
record.get('n').get('name') #假设数据库中有一个属性(或者说是列名字)是name
result2=graph.run(‘MATCH ()-[r]->() RETURN r’).data()#读取边
record2=result2[0]#读取第一个边(关系)
record2.get(‘r’).start_node.get(‘name’)#读取边的起始节点的名字
record2.get(‘r’).end_node.get(‘name’)#读取边的目的节点的名字
3.数据转换为json
def buildNodes(nodeRecord):#读取节点
data = {"id": str(nodeRecord.get('n').get('id')), "name": str(nodeRecord.get('n').get('name')),"label": str(nodeRecord.get('n').get('label'))}
return {"data": data}
def buildEdges(relationRecord):#读取边
data = {"source": str(relationRecord.get('r').start_node.get('id')),
"target": str(relationRecord.get('r').end_node.get('id')),
"relationship": str('use')}
return {"data": data}
def get_graph():#输出json
nodes = list(map(buildNodes, graph.run('MATCH (n) RETURN n').data()))
edges = list(map(buildEdges, graph.run('MATCH ()-[r]->() RETURN r').data()))
return jsonify(elements={"nodes": nodes, "edges": edges})