繁体   English   中英

使用py2neo从csv文件创建neo4j图形数据库

[英]Creating neo4j graph database from csv file using py2neo

我目前正在攻读博士课程,我对Py2neo很感兴趣,所以我使用它来使用社交图进行一些实验。 但是我遇到了新手的麻烦。 请问这些简单的问题。

我有一个xml数据集,其中包含有关jornal的出版物的数据,我已将其转换为csv表,大约有700条记录,每条记录由四个fiels组成:日期,标题,关键字,作者。 所以我的第一个问题是如何以编程方式从该表创建图形。 我考虑编写一个循环csv表的python脚本,读取每个行和列字段并写入节点。 +++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++

   #!/usr/bin/env python
   #
   import csv
   from py2neo import neo4j, cypher
   from py2neo import node,  rel

   # calls database service of Neo4j
   #
   graph_db = neo4j.GraphDatabaseService("http://localhost:7474/db/data/")
   #
   # Create nodes and relationships from a csv table
   # since it's a csv table, a reader must be invoked


   ifile  = open('testeout5_cp.csv', "rb")
   reader = csv.reader(ifile)

   # clear database
   graph_db.clear()

   rownum = 0
   for row in reader:
        colnum = 0
        for col in row:
            titulo, autor, rel = graph_db.create(
            {"titulo": col[1]}, {"autor": col[3]}, (1, "eh_autor_de", 0)
            )
            print(titulo,  autor)  
   rownum += 1

   ifile.close()

================我得到了这个输出(片段):Python 2.7.5(默认,2013年8月22日,09:31:58)[GCC 4.8.1 20130603(Red Hat) 4.8.1-1)] aires2,标准

  (Node('http://localhost:7474/db/data/node/10392'), Node('http://localhost:7474/db/data /node/10393')) (Node('http://localhost:7474/db/data/node/10394'), Node('http://localhost:7474/db/data/node/10395')) (Node('http://localhost:7474/db/data/node/10396'), Node('http://localhost:7474/db/data/node/10397')) (Node('http://localhost:7474/db/data/node/10398'), Node('http://localhost:7474/db/data/node/10399')) (Node('http://localhost:7474/db/data/node/10400'), Node('http://localhost:7474/db/data/node/10401')) (Node('http://localhost:7474/db/data/node/10402'), Node('http://localhost:7474/db/data/node/10403')) (Node('http://localhost:7474/db/data/node/10404'), Node('http://localhost:7474/db/data/node/10405')) 

=========出了什么问题?

我不是py2neo专家,所以无法帮助。 但是,您是否尝试过使用其他机制来创建图表? 既然不是很大,我会考虑使用电子表格(我用了很多 ) -它的死很容易。

有关更多信息,请参见http://blog.neo4j.org/2013/03/importing-data-into-neo4j-spreadsheet.html

希望它有意义。

里克

我认为没有错,你的代码看起来很好。

您打印节点并获取正确的py2neo节点实例。 尝试print(titulo, autor, rel)以查看是否也创建了您的关系。

如果您的数据在那里,请查看http://localhost:7474/webadmin/上的Web界面。 由于您没有太多节点,您可以尝试使用简单的密码查询来获取所有节点并检查一切是否正常。

START n=node(*) RETURN n;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM