我目前正在攻读博士学位,我对 Py2neo 很感兴趣,所以我使用它来使用社交图谱进行一些实验。但是我遇到了新手麻烦。不好意思问这些简单的问题。
我有一个包含有关期刊出版物数据的 xml 数据集,我已将其转换为一个 csv 表,大约有 700 条记录,每条记录由四个字段组成:日期、标题、关键字、作者。所以我的第一个问题是如何以编程方式从该表创建图表。我考虑编写一个 python 脚本来循环 csv 表,读取每一行和每一列字段并写入节点。 +++++++++++++++++++++++++++++++++++++++++++++++代码+++++++++++++++++++++++++++++++++++++++++++++++
#!/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)] on aires2, Standard
(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了解更多信息。
希望它有意义。
瑞克
关于python - 使用 py2neo 从 csv 文件创建 neo4j 图形数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18804254/