csv - Cypher 用 python 加载 csv

标签 csv neo4j load cypher py2neo

我已经使用 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/

相关文章:

neo4j - 在现有节点之间创建关系的更快方法?

php - 有没有办法(在 PHP 中)检测脚本是否被 jQuery 加载调用?

android - ListView 在滚动底部加载更多内容

csv - 无法使用Logstash解析CSV文件

java - 如何使用 java 读取制表符分隔文件并从中选择几个值

java - 由于 CSV 中的换行符而导致的 ArrayIndexOutOfBounds 异常

jquery - 加载图像后使 div 可见

python - 将 Python 列表导出到 csv

json - 我如何清理新主义 go-lang 的这种返回类型?

neo4j - 如何对按某些谓词分组的属性求和