4

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

我有一个 xml 数据集,其中包含有关期刊出版物的数据,我已将其转换为 csv 表,大约有 700 条记录,每条记录由四个字段组成:日期、标题、关键字、作者。所以我的第一个问题是如何以编程方式从这个表中创建一个图表。我考虑编写一个循环 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'))

========= 怎么了?

4

2 回答 2

0

我不是 py2neo 专家,所以对此无能为力。但是,您是否尝试过使用不同的机制来创建图表?由于它不是很大,我会考虑使用电子表格(我经常使用它) - 这容易。

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

希望这是有道理的。

里克

于 2013-09-15T05:46:55.167 回答
0

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

您打印节点并获得正确的 py2neo 节点实例。试着print(titulo, autor, rel)看看你的关系是否也建立了。

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

START n=node(*) RETURN n;
于 2013-09-16T12:55:44.153 回答