当前位置:   article > 正文

使用py2neo将csv导入neo4j_neo4j导入csv文件创建关系

neo4j导入csv文件创建关系

一、neo4j基本使用

创建节点:创建一个标签类型为“大学”的节点,该节点具有一个name属性,属性值是“清华大学”

create(:大学{name:"清华大学"})

 同样的

create(:学院{name:"计算机学院"})

 创建一段由大学到学院的关系

match(p1:`大学`),(p2:`学院`) create (p1)-[r:包含]->(p2)

 

 二、使用py2neo导入csv

因为手动在neo4j中导入,导致关系名只有一种,很不方便,参见文档

Patterns - Cypher Manual (neo4j.com)

 所以在这里用python进行导入

  1. import csv # 导入csv文件
  2. import py2neo # 导入py2neo库
  3. from py2neo import Graph, Node, Relationship, NodeMatcher
  4. g = Graph('http://localhost:7474', user='neo4j', password='xxxxx', name='neo4j') #这里是你自己的用户名和密码
  5. #g.delete_all() # 清除neo4j中原有的结点等所有信息
  6. with open('D:/neo4j-community-5.3.0/import/test_demo1_re.csv', 'r', encoding='utf-8') as f: # 文件路径
  7. next(f) #跳过第一行属性名
  8. for line in f.readlines():
  9. rela_array = line.strip("\n").split(",")
  10. print(rela_array)
  11. g.run("merge (p:person{name: '%s'})" % (rela_array[0]))
  12. g.run("merge (p:person{name: '%s'})" % (rela_array[1]))
  13. g.run(
  14. "MATCH(e1: person{name:'%s'}), (e2: person{name:'%s'}) CREATE(e1)-[r:%s{relation: '%s'}]->(e2) RETURN r" % (rela_array[0], rela_array[1], rela_array[2], rela_array[2])
  15. )

这是数据格式(编码一定要保存为utf-8): 

效果图:

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/790295
推荐阅读
相关标签
  

闽ICP备14008679号