我已经使用 Neo4j 的批量导入工具建立了一个图形数据库。我正在处理的数据每天都会生成,因此我需要每天更新我的图形数据库。运行批量导入不是解决方案,因为它每天都会清理和上传整个数据。我正在尝试使用 python 使用 load csv cypher 函数来执行此操作,但是我做不到。
ex = USING PERIODIC COMMIT LOAD CSV FROM myfile.csv AS row FIELDTERMINATOR ';'
ex += MERGE(:a{b:row[0],d:row[1]})
我正在尝试使用 py2neo 的 as 运行此命令
graph = py2neo.Graph()
graph.cypher.execute(ex)
我收到错误 Invalid input 'G' : expected whitespace, comment, "...string..."or a parameter (line 1, column 37 (offset 36))
使用此链接我明白我必须查看行然后我可以使用 py2neo 上传数据。 https://codereview.stackexchange.com/questions/75842/optimizing-for-data-import-in-neo4j-using-py2neo
有没有办法在 csv 上使用 python 直接运行 load csv?然而,书写外观不是问题,这会增加额外的计算量。
提前感谢您的回答:)
最佳答案
如果不在第一行末尾添加空格并附加第二行,您可能会遇到问题。很难确定,因为我没有在您的示例代码中看到引号。尝试使用 Python 的多行字符串语法来构造您的查询:
query = '''
USING PERIODIC COMMIT
LOAD CSV FROM 'file:///path/to/myfile.csv' AS row FIELDTERMINATOR ';'
MERGE (:Person {name: row[1], age: row[2]})
'''
graph.cypher.execute(query)
另外,请注意,要引用本地文件系统上的文件,您应该使用 file:///
格式。
关于csv - Cypher 用 python 加载 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35012197/