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

如何在Neo4j查询中传入Python列表参数并解决语法报错问题

错误原因

你当前触发的SyntaxError是Python层面的语法错误,你将Cypher查询字符串和查询参数直接放在同一个括号内赋值给query变量,不符合Python语法规则,也不符合Neo4j Python驱动的传参规范。

正确实现方案
  • 第一步:单独定义Cypher查询语句,保留$name作为参数占位符
cypher_query = """
MATCH (p1:Item),(p2:Item) 
WHERE p1.value = $name
RETURN p1.value AS from, p2.value AS to,
gds.alpha.similarity.euclideanDistance(p1.embeddingNode2vec, p2.embeddingNode2vec) AS similarity 
ORDER BY similarity DESC 
LIMIT 40
"""
  • 第二步:定义查询参数字典,按照你的需求取references列表的第一个元素作为参数值
query_params = {
    "name": references[0]
}
  • 第三步:调用Neo4j驱动执行接口时传入查询语句和参数
# 已提前初始化Neo4j驱动对象driver的前提下,执行查询示例
with driver.session() as session:
    result = session.run(cypher_query, parameters=query_params)
    # 后续按需遍历result处理返回结果即可
补充说明
  • 你原有代码中使用references[2]取的是列表第三个元素,列表索引从0开始,取第一个元素需要用references[0]
  • Cypher语句中p1.embeddingNode2vec外的多余括号可直接删除,不影响逻辑的同时代码更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:12:02