# -*- coding: utf-8 -*- from py2neo import Graph import psycopg2 # 二维数组查找 def find(target, array): for i, val in enumerate (array): for j, temp in enumerate (val): if temp = = target: return True ; return False graph = Graph(host = "192.168.3.186://7474" , auth = ( "neo4j" , "wabjtam123" )) data = graph.run( 'match data=(p:anjian)-[:参与 *2..5]-(u:anjian) with p,collect( distinct u.AJBH) as ajbhs match (p:anjian)-[:参与 *1..5]-(c:xyr) with p,ajbhs, collect(distinct c.XYRBH) as xyrbh_list,(ajbhs+p.AJBH) as ajbh_list where size(xyrbh_list)>2 and size(ajbh_list)>2 return p.AJBH as ajbh,ajbh_list,xyrbh_list' ) aj = [] xyr_result = [] aj_result = [] for node in data: ajbh = node.get( 'ajbh' ) ajbh_list = node.get( 'ajbh_list' ) xyrbh_list = node.get( 'xyrbh_list' ) ajbh_list.append(ajbh) ajbh_list = list ( set (node.get( 'ajbh_list' ))) xyrbh_list = list ( set (node.get( 'xyrbh_list' ))) flag = True if len (aj_result) > 0 : for i, val in enumerate (ajbh_list): f = find(val, aj_result) if f: flag = False break ; if flag: if len (ajbh_list) > 2 and len (xyrbh_list) > 2 : aj.append(ajbh) aj_result.append(ajbh_list) xyr_result.append(xyrbh_list) print ( 'MATCH p=(:anjian{AJBH:"' + ajbh + '"})-[*]-() RETURN p LIMIT 25' ) name = str ( len (xyrbh_list)) + "人" + str ( len (ajbh_list)) + "案" print (name) print ( len (aj_result)) print (aj) print ( '----------------------------' ) print (aj_result) conn = psycopg2.connect(database = "zfgfh" , user = "postgres" , password = "postgres" , host = "192.168.3.202" , port = "5432" ) cursor = conn.cursor() for ajbh in aj_result: for temp in ajbh: insert_sql = "insert into test.gm (\"ajbh\") values ('%s')" insert_sql = insert_sql % temp print (insert_sql) # 插入 cursor.execute(insert_sql) # 提交 conn.commit() cursor.close() # 关闭Cursor |