赞
踩
用Python先处理csv文件数据,在自动化批量在neo4j生成节点。
# 数据写入 datalists = [] with open('zcydata.csv','r',encoding='utf-8') as f: listLists=f.readlines() for lists in listLists: datalists.append(lists.replace('</P>','').replace('<P>','').replace('\n','').split(',',14)) # 用途的数据导入 Datalists = [] with open('zz_data.csv', 'r', encoding='utf-8') as f: ListLists = f.readlines() for lists in ListLists: Datalists.append(lists.replace('</P>', '').replace('<P>', '').replace('\n', '').split(',', 14)) # 组成的数据导入 Datals = [] with open('zc_data.csv', 'r', encoding='utf-8') as f: ListLists=f.readlines() for lists in ListLists: Datals.append(lists.replace('</P>','').replace('<P>','').replace('\n','').split(',',14))
# 创建节点关系 i = 0 tx = graph.begin() for items in datalists: # 药的名称 a = Node('zcyname', name=items[0]) tx.create(a) a1 = Node('shuxing', name='信息') a2 = Node('shuxing', name='经济性') a3 = Node('shuxing', name='安全性') tx.create(a1) tx.create(a2) tx.create(a3) r1 = Relationship(a, 'xinxi', a1) r2 = Relationship(a, 'jingjixing', a2) r3 = Relationship(a, 'anquanxing', a3) tx.create(r1) tx.create(r2) tx.create(r3) # 第一层关系 b1 = Node('wxyj', name='文献研究') b2 = Node('ypjj', name='药品禁忌') b3 = Node('blfy', name='不良反应') tx.create(b1) tx.create(b2) tx.create(b3) r11 = Relationship(a3, 'wxyj', b1) r12 = Relationship(a3, 'ypjj', b2) r13 = Relationship(a3, 'blfy', b3) tx.create(r11) tx.create(r12) tx.create(r13) # 文献研究 if items[7] != '': b11 = Node('wxnum', name=items[7]) tx.create(b11) r1_1 = Relationship(b1, 'num', b11) tx.create(r1_1) # 药品禁忌 if items[12] != '': ypjj_list = items[12].split('。') for ypjj in ypjj_list: if ypjj !='': b12 = Node('ypjj' ,name=ypjj) tx.create(b12) r1_2 = Relationship(b2, 'ypjj', b12) tx.create(r1_2) # 不良反应 if items[13] != '': blfy_list = items[13].split('。') for blfy in blfy_list: if blfy != '': b13 = Node('ypjj' ,name=blfy) tx.create(b13) r1_3 = Relationship(b3, 'blfy', b13) tx.create(r1_3) c1 = Node('xingzhuang', name='性状') c2 = Node('zygg', name='主要规格') c3 = Node('yt', name='用途') c4 = Node('yfyl', name='用法用量') c5 = Node('zc', name='组成') c6 = Node('cpfl', name='产品分类') c7 = Node('sccj', name='生产厂家') tx.create(c1) tx.create(c2) tx.create(c3) tx.create(c4) tx.create(c5) tx.create(c6) tx.create(c7) r21 = Relationship(a1, '包含', c1) r22 = Relationship(a1, '包含', c2) r23 = Relationship(a1, '包含', c3) r24 = Relationship(a1, '包含', c4) r25 = Relationship(a1, '包含', c5) r26 = Relationship(a1, '包含', c6) r27 = Relationship(a1, '包含', c7) tx.create(r21) tx.create(r22) tx.create(r23) tx.create(r24) tx.create(r25) tx.create(r26) tx.create(r27) # 性状节点 if items[6] != '': c11 = Node('xingzhuang', name=items[6]) tx.create(c11) r1_11 = Relationship(c1, 'xingzhuang', c11) tx.create(r1_11) # 主要规格 if items[1] != '': c21 = Node('zygg', name=items[1]) tx.create(c21) r2_21 = Relationship(c2, 'zygg', c21) tx.create(r2_21) # 用途 for its in Datalists[i]: # print(its) if its != '': Datas = re.split(',', its) # print(Datas) for Data in Datas: if Data != '': c31 = Node('yt', name=Data) tx.create(c31) r3_31 = Relationship(c3, 'yt', c31) tx.create(r3_31) # print(Data) break # 用法用量 if items[3] != '': c41 = Node('yfyl', name='口服,一次15毫升,一日3~4次。') tx.create(c41) r4_41 = Relationship(c4, 'yfyl', c41) tx.create(r4_41) # 组成节点 if Datals[i][1] != '': datas = re.split('、', Datals[i][1]) # print(datas) for data in datas: if data != '': c51 = Node('zc', name=data) tx.create(c51) r5_51 = Relationship(c5, 'zc', c51) tx.create(r5_51) # 产品分类 if items[4] != '': c61 = Node('cpfl', name=items[4]) tx.create(c61) r6_61 = Relationship(c6, 'cpfl', c61) tx.create(r6_61) # 生产厂家 if items[5] != '': c71 = Node('sccj', name=items[5]) tx.create(c71) r7_71 = Relationship(c7, 'sccj', c71) tx.create(r7_71) d1 = Node('jjml', name='基药目录') d2 = Node('ybml', name='医保目录') d3 = Node('bzly', name='标准来源') tx.create(d1) tx.create(d2) tx.create(d3) r31 = Relationship(a2, 'jyml', d1) r32 = Relationship(a2, 'yb', d2) r33 = Relationship(a2, 'bzly', d3) tx.create(r31) tx.create(r32) tx.create(r33) # 医保 if items[9] != '': d12 = Node('yb', name='非医保') tx.create(d12) r2_12 = Relationship(d2, 'yb', d12) tx.create(r2_12) # 基药目录 if items[10] != '': d11 = Node('jyml', name=items[10]) tx.create(d11) r1_11 = Relationship(d1, 'jyml', d11) tx.create(r1_11) # 标准来源 if items[11] != '': d13 = Node('bzly', name=items[11]) tx.create(d13) r3_13 = Relationship(d3, 'yb', d13) tx.create(r3_13) i += 1 tx.commit()
1、zc_data.csv文件
2、zz-data.csv文件
3、zcydata.csv文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。