【问题标题】:Cypher load csv with pythonCypher 用 python 加载 csv
【发布时间】:2016-05-02 22:03:33
【问题描述】:

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

有没有办法直接使用 python 在 csv 上运行加载 csv?书写外观不是问题,但这会增加额外的计算量。

提前感谢您的回答:)

【问题讨论】:

    标签: csv neo4j load cypher py2neo


    【解决方案1】:

    您可能会遇到问题,即在第一行末尾添加空格并附加第二行。很难确定,因为我在您的示例代码中没有看到引号。尝试使用 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:/// 格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2014-11-26
      相关资源
      最近更新 更多