升级 py2neo 版本代码后出现错误

问题描述

目前正在生产中使用的版本。

NEO4J==3.2.2

python3.8 py2neo==3.1.2

现在升级到新版本

py2neo==4.2.0

我遇到了错误

使用 py2neo==3.1.2 这段代码运行良好

selector = Nodeselector(graph)
student_node = selector.select("school",studen_key=studen_key).first()

升级版本后我更新了这样的代码

selector = NodeMatcher(graph)
student_node = selector.match("school",studen_key=studen_key).first()

但它正在抛出错误

py2neo.database.ClientError: SyntaxError: Invalid input '{': expected "+" or "-" (line 1,column 39 (offset: 38))
"MATCH (_:student) WHERE _.student_key = {1} RETURN _"

解决方法

这里py2neo版本和Neo4j版本不匹配。升级到 py2neo 版本 4.anything 仍然会给你一个已有几年历史的版本,为当时的 Neo4j 构建。从那时起,参数语法发生了变化,因此您不能使用较旧的 Neo4j 版本的旧驱动程序。

改为升级到更新版本的 py2neo。