将现有的neo4j与csv进行比较,并从csv中添加缺少的节点和关系

时间:2016-05-15 19:34:07

标签: csv neo4j py2neo

以下是我通过读取csv文件创建neo4j关系的代码。

import csv
from py2neo import neo4j, cypher, authenticate, Graph
from py2neo import node, rel
import py2neo
authenticate("localhost:7474", "neo4j", "bhatt1234")
graph_db = neo4j.Graph("http://localhost:7474/db/data/")
ifile = open('agent_send.csv',"rb")
reader = csv.reader(ifile)
rownum = 0
for row in reader:
colnum = 0
for col in row:
rel =  graph_db.merge({))
rownum += 1
ifile.close()

SO,

我希望建立一个进程,从csv到已经存在的neo 4j进行日常导入。为此,我需要使用merge()语句。但我正在努力在py2neo中使用merge。我需要在我的neo4j db中使用我的csv和已存在的节点和关系之间的合并。

    :START_ID(Agent),:END_ID(Agent),TXN_KEY,Amount,SendTime,PayTime,:TYPE
       AEX053163,AEX010922,5000000000107593411,20.0,1361439,1362963.0,Agent_Send
AKJ063072,AS1034942,5000000000108495674,220.0,1361434,1362369.0,Agent_Send
ADT326742,AMX002998,5000000000106488543,1000.0,1361435,1363053.0,Agent_Send
ARA031639,AED100363,5000000000106029876,1669.0,1361424,1362506.0,Agent_Send
AKC403616,ADJ122111,5000000000107872144,180.0,1361415,1362680.0,Agent_Send

以上是具有关系的CSV。那么,我如何将此关系置于g.merge()?

之下

2 个答案:

答案 0 :(得分:0)

create()函数返回创建的所有实体的元组,其中包含参数个数的长度。

您正尝试将元组(在您的情况下长度为5)解压缩为三个变量:Agent,Agent,rel

尝试将结果存储在单个变量中:

result = graph_db.create(...)

for r in result:
    print(r)

答案 1 :(得分:0)

所以,我能够通过使用LOAD CSV来实现结果。对日常数据库进行日常ETL是一个非常方便的实用程序。