You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook连接Neo4j报错:'Graph'对象无'cypher'属性

嘿,这个问题我之前也碰到过,马上帮你解决!

问题根源

你看到的AttributeError: 'Graph' object has no attribute 'cypher',是因为py2neo从v4版本开始就彻底废弃了graph.cypher.execute()这个旧API,原来的cypher属性已经从Graph对象里移除了,所以才会报错。另外你的连接代码也有个小问题,host参数的写法不对。

修正后的完整代码

我把你的代码改成适配新版本py2neo的写法,直接就能用:

from py2neo import Graph
# 修正host参数:直接传bolt协议的完整地址,不需要加neo4j@前缀
graph = Graph("bolt://63.35.194.218:7687", auth=("neo4j", "neo4j"))

# 执行查询的正确方式:用graph.run()替代旧的graph.cypher.execute()
query = "MATCH (a)-[]-(b) RETURN a.id, b.id LIMIT 1"
result = graph.run(query)

# 把查询结果转成字典列表,方便查看
data = result.data()
data

额外优化:转成Pandas DataFrame(可选)

如果想让结果更易读,转成DataFrame格式会更友好:

import pandas as pd
df = pd.DataFrame(data)
df

关于%reload_ext cypher的替代用法

如果你想用Jupyter的cypher魔法命令直接查询,也可以这么写(需要确保已经安装了ipython-cypher扩展):

%reload_ext cypher
# 直接用魔法命令执行查询,还能转成DataFrame
results = %cypher MATCH (a)-[]-(b) RETURN a.id, b.id LIMIT 1
results.dataframe

这样就能成功连接Neo4j并返回节点ID啦!

内容的提问来源于stack exchange,提问作者Stetco Oana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:25:23