使用 UNWIND 使用 python

问题描述

我正在尝试使用 python 中的 CSV 文件加载 neo4j db。我可以在不使用 UNWIND 操作的情况下连接和加载数据。但我想用它来更快地加载。尝试使用时出现以下错误

{code: Neo.ClientError.Statement.SyntaxError} {message: Invalid input '': expected whitespace,'.',node labels,'[','^','*','/','% ','+','-',"=~",IN,STARTS,ENDS,CONTAINS,IS,'=','~',"","!=",'',"=",AND,XOR,OR or AS (line 1,column 16 (offset: 15)) “ UNWIND {data1} 作为节点” ^} 我在使用 UNWIND 的地方有以下代码。这只是我要测试的一个小样本。

cq1=""" UNWIND {data1}​ as node
                        MERGE (n:Person {id : node.ID}​)
                            SET
                               n.gender = node.GENDER"""

list_dicts_data1 = [{"ID": '1',"GENDER": 'Male'}]
graph.run(cq1,data1 = list_dicts_data1)

任何建议是什么导致了这个错误,我该如何解决

解决方法

由于格式错误,我无法清楚地读取错误,但是您运行的是哪个版本的 Neo4j?参数语法不久前从 {var} 更改为 $var。这可能是原因。

另外,你有没有考虑使用py2neo的批量加载API,它为你包装了这种语句? https://py2neo.org/2021.0/bulk/index.html