我在python中使用动态计算的属性名称和参数编写了一个函数来编写一个cypher查询,以便从Recon2Neo4j数据库中检索路径(基于Neo4j的代谢框架可以从https://diseaseknowledgebase.etriks.org/metabolic/browser/免费获得。)。没有参数的匹配查询在Neo4j浏览器中完美地用于特定的属性名称和值。我想知道以下代码是否真的有用。没有错误,但“print(p1,p1val,p2,p2val)”永远不会执行。谢谢。
def getPath(p1, p1val, p2, p2val):
with driver.session() as session:
with session.begin_transaction() as tx:
for record in tx.run("WITH $p1 AS propnam1, $p2 AS propnam2 "
"MATCH p = shortestPath((m1)-[*..]-(m2)) "
"WHERE m1[propnam1]=$p1val AND m2[propnam2]=$p2val "
"RETURN p", p1=p1, p1val=p1val, p2=p2, p2val=p2val):
print(p1, p1val, p2, p2val)
print(record["p"])
session.close()
#return result