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

如何在Memgraph查询中嵌入Python变量?

Cypher语句绑定变量执行CREATE的正确写法

你之前的写法错误在于直接将变量名写入Cypher字符串,Cypher会将其识别为属性名而非变量值,仅在框架自动处理迭代器绑定的场景下偶然生效。以下是两种无需save_node的正确实现方式:

推荐方式:参数绑定(安全无注入风险)

使用Cypher的参数占位符$参数名,在执行时传入参数字典:

# 假设variable是你要传入的变量值
connection.execute("CREATE (m: Temp {val1: $val1})", {"val1": variable})

这种方式是Neo4j官方推荐的参数传递方式,既避免了字符串拼接的错误,也能防止Cypher注入。

不推荐方式:字符串格式化(存在注入风险)

如果必须用字符串拼接,需注意转义大括号(用双大括号{{}}输出单个大括号),并根据变量类型处理引号:

# 变量为字符串时
query = f"CREATE (m: Temp {{val1: '{variable}'}})"
# 变量为数字时可省略引号
query = f"CREATE (m: Temp {{val1: {variable}}})"
connection.execute(query)

注意:这种方式可能导致Cypher注入,仅在变量完全可信的场景下使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:10:48