首页 文章

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

提问于
浏览
0

下面是我通过读取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()

所以,

我希望 Build 一个进程,从csv到已经存在的neo 4j进行日常导入 . 为此,我需要使用merge()语句 . 但我正在努力在py2neo中使用merge . 我需要在我的neo4j数据库中使用我的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

    create() 函数返回所有创建的实体的元组,这些实体具有参数个数的长度 .

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

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

    result = graph_db.create(...)
    
    for r in result:
        print(r)
    
  • 0

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

相关问题