使用python在neo4j中传递参数

vcudknz3  于 2023-03-21  发布在  Python
关注(0)|答案(3)|浏览(150)

我想用Python在CREATE中传递参数,例如:'''

n = "abc"
a = 1234

cqlCreate = "CREATE (cornell:university { name: $n,yob:$a})"

''''
但它不工作..任何建议,请

kx7yvsdv

kx7yvsdv1#

这实际上取决于你连接到Neo4j的Python驱动程序(检查https://neo4j.com/developer/python/以查看可用驱动程序的列表)。如果你使用的是官方的neo4j-driver,那么你编写的代码是正确的。为了执行Cypher查询,你可以这样做:

from neo4j import GraphDatabase

uri = # insert neo4j uri
user = # insert neo4j username
password = # insert neo4j password

n = "abc"
a = 1234
query = "CREATE (cornell:university { name: $n,yob:$a})"

driver = GraphDatabase.driver(uri, auth=(user, password))
session = driver.session()
result = session.run(query, n=n, a=a)
session.close()
driver.close()

虽然ōXmo的答案可能会工作,这是不推荐的方式.

另见

jyztefdp

jyztefdp2#

你可以在Python中使用f字符串。请看下面的例子。注意
1.您需要使用{{作为{的转义符
2您需要使用\作为“的转义字符

n = "abc"
a = 1234

cqlCreate = f"CREATE (cornell:university {{name: \"{n}\", yob: {a}}})"
print (cqlCreate)

Result:
CREATE (cornell:university {name: "abc", yob: 1234})

参考:https://www.python.org/dev/peps/pep-0498/

anhgbhbe

anhgbhbe3#

我已经尝试了下面的格式,并为我工作完美。我使用neo4j 5.3.0

info='Public'

    cypherQ= "MATCH  (n1{name:$info}), (a1{ID:'PL07227'}) RETURN exists( (n1)-[:my_dummy_relation]-(a1) )"

    session.run(cypherQ, info=info)

相关问题