Neo4j Aura Python代码报错:'Session'对象无execute_write/execute_read属性
解决Neo4j Aura Python连接中'Session'无'execute_write'/'execute_read'属性的AttributeError
这个错误的核心原因是你使用的Neo4j Python驱动版本过低:execute_write和execute_read是Neo4j Python驱动4.0及以上版本才引入的会话方法,而旧版(1.x系列)的Session对象并没有这两个方法,因此触发AttributeError。
下面提供两种可行的解决方式:
方式一:升级Neo4j Python驱动到最新稳定版
执行以下命令完成升级:
pip install neo4j --upgrade
升级后,你原代码中的execute_write/execute_read调用可以正常工作——这两个方法会自动处理事务的提交与回滚,示例代码如下:
# 写操作示例 def create_person(tx, name): return tx.run("CREATE (p:Person {name: $name}) RETURN p", name=name).single() with driver.session() as session: result = session.execute_write(create_person, "Bob") # 读操作示例 def get_person_names(tx): return [record["p.name"] for record in tx.run("MATCH (p:Person) RETURN p.name")] with driver.session() as session: names = session.execute_read(get_person_names)
方式二:不升级驱动,改用旧版run方法
如果因为项目兼容性限制无法升级驱动,可以直接用旧版驱动支持的session.run()方法替代,手动管理事务(若需要事务保障):
# 写操作(带事务) with driver.session() as session: tx = session.begin_transaction() try: result = tx.run("CREATE (p:Person {name: $name}) RETURN p", name="Bob") tx.commit() except Exception: tx.rollback() raise # 读操作 with driver.session() as session: result = session.run("MATCH (p:Person) RETURN p.name") for record in result: print(record["p.name"])
注意:若你之前安装的是旧包名neo4j-driver,建议切换为官方现在推荐的neo4j包,避免版本混淆。
内容的提问来源于stack exchange,提问作者Spanarchian
相关产品推荐
相关产品推荐

