将现有的neo4j与csv进行比较,并从csv添加缺失的节点和关系
以下是我通过从csv文件读取来创建neo4j关系的代码。将现有的neo4j与csv进行比较,并从csv添加缺失的节点和关系
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每天进口已经exisiting新4J。为此,我需要使用merge()语句。但我正努力在py2neo中使用合并。我需要使用我的csv和我的neo4j db中已有的节点和关系之间的合并。
: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()下?
所以,我能够通过使用LOAD CSV达到的结果。在现有的数据库中进行日常ETL是非常方便的工具。
的create()
函数返回创建的所有实体具有的参数的数目的长度的一个元组。
您试图元组(其长度为5,你的情况)解压到三个变量:Agent,Agent,rel
。
尝试将结果存储在一个单一变量:
result = graph_db.create(...)
for r in result:
print(r)
嗨,将结果存储在一个变量中只是创建节点而不是它们之间的任何关系。 –
然后你做了一些错误的节点/ rel定义。你的错误与创建关系无关。 –
请参阅我最近编辑的问题。 –
你正在使用哪个版本的neo4j/py2neo? –