Python Neo4j 在 Cypher 语句中使用字符串变量
Python Neo4j using string variables in Cypher statements
我显然误解了 python Neo4j 模块中 session.run 方法的格式。
这个有效:
session.run("statement1"
"statement2"
"statement3"
"statement4", variable list)
但现在我需要在方法外部修改字符串:
例如我想做
s1 = "statement1"
s2 = "statement2"
session.run(s1
s2
"statement3"
"statement4", variable list)
这样我就可以以 .运行 方法无法处理的方式修改语句 - 例如即时修改标签。
但是我得到一个语法错误
我不明白为什么这不起作用。我究竟做错了什么?如何将标签名称等变量引入到这样的 运行 命令中?
谢谢
实际代码是这样的:
s1 = "MERGE (a:Animal:Female {tag: {tag}})"
session.run(s1
" MERGE (d:Animal:Female {tag: {dam}})"
"MERGE (s:Animal:Male {tag: {sire}})"
"MERGE (d)-[:DamTo{dob:{dob}}]->(a)"
"MERGE (s)-[:SireTo{dob:{dob}}]->(a)" , tag = tag, dob = dob, dam = dam, sire = sire )
错误信息:
" MERGE (d:Animal:Female {tag: {dam}})"
^
SyntaxError: invalid syntax
在Python中,相邻的字符串文字会自动连接起来。但是,字符串变量不支持自动连接。
尝试改变这个:
s1
" MERGE (d:Animal:Female {tag: {dam}})"
对此:
s1 +
" MERGE (d:Animal:Female {tag: {dam}})"
其他自动串联应该仍然有效。
我显然误解了 python Neo4j 模块中 session.run 方法的格式。
这个有效:
session.run("statement1"
"statement2"
"statement3"
"statement4", variable list)
但现在我需要在方法外部修改字符串: 例如我想做
s1 = "statement1"
s2 = "statement2"
session.run(s1
s2
"statement3"
"statement4", variable list)
这样我就可以以 .运行 方法无法处理的方式修改语句 - 例如即时修改标签。
但是我得到一个语法错误
我不明白为什么这不起作用。我究竟做错了什么?如何将标签名称等变量引入到这样的 运行 命令中?
谢谢
实际代码是这样的:
s1 = "MERGE (a:Animal:Female {tag: {tag}})"
session.run(s1
" MERGE (d:Animal:Female {tag: {dam}})"
"MERGE (s:Animal:Male {tag: {sire}})"
"MERGE (d)-[:DamTo{dob:{dob}}]->(a)"
"MERGE (s)-[:SireTo{dob:{dob}}]->(a)" , tag = tag, dob = dob, dam = dam, sire = sire )
错误信息:
" MERGE (d:Animal:Female {tag: {dam}})"
^
SyntaxError: invalid syntax
在Python中,相邻的字符串文字会自动连接起来。但是,字符串变量不支持自动连接。
尝试改变这个:
s1
" MERGE (d:Animal:Female {tag: {dam}})"
对此:
s1 +
" MERGE (d:Animal:Female {tag: {dam}})"
其他自动串联应该仍然有效。