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

时间:2013-09-14 17:10:11

标签: python csv 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(红帽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'))
    
  

====== 有什么问题?

2 个答案:

答案 0 :(得分:0)

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

有关详情,请参阅http://blog.neo4j.org/2013/03/importing-data-into-neo4j-spreadsheet.html

希望它有意义。

里克多维

答案 1 :(得分:0)

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

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

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

START n=node(*) RETURN n;