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

Compare the existing neo4j with a csv and add missing nodes and relationships from a csv

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

所以,

我正在寻找一个流程来每天从 csv 导入到已经存在的 neo 4j。为此,我需要使用 merge() 语句。但我正在努力在 py2neo 中使用合并。我需要在我的 csv 和我的 neo4j 数据库中现有的节点和关系之间使用合并。

    :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() 下?

create() 函数 returns 创建的所有实体的元组,其长度为参数个数。

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

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

result = graph_db.create(...)

for r in result:
    print(r)

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