passing parameters in neo4j using python
Question:
I want to pass parameter in CREATE using Python
e.g:
”’
n = "abc"
a = 1234
cqlCreate = "CREATE (cornell:university { name: $n,yob:$a})"
””
but it dosen’t work.. any suggestions please
Answers:
You can use the f-strings in Python. See example below. Note that
- You need to use {{ as escape character for {
2 You need to use as escape character for "
n = "abc"
a = 1234
cqlCreate = f"CREATE (cornell:university {{name: "{n}", yob: {a}}})"
print (cqlCreate)
Result:
CREATE (cornell:university {name: "abc", yob: 1234})
reference: https://www.python.org/dev/peps/pep-0498/
It actually depends on the Python driver that you are using to connect to Neo4j (check https://neo4j.com/developer/python/ to see the list of available drivers). If you are using the official neo4j-driver, the code you wrote is correct. In order execute the Cypher query, you could do something like this:
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()
Although âńōŋŷXmoůŜ’s answer will probably work, it is not recommended way to it.
See also:
I had tried below format and was working perfectly for me. I am using 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)
I want to pass parameter in CREATE using Python
e.g:
”’
n = "abc"
a = 1234
cqlCreate = "CREATE (cornell:university { name: $n,yob:$a})"
””
but it dosen’t work.. any suggestions please
You can use the f-strings in Python. See example below. Note that
- You need to use {{ as escape character for {
2 You need to use as escape character for "
n = "abc"
a = 1234
cqlCreate = f"CREATE (cornell:university {{name: "{n}", yob: {a}}})"
print (cqlCreate)
Result:
CREATE (cornell:university {name: "abc", yob: 1234})
reference: https://www.python.org/dev/peps/pep-0498/
It actually depends on the Python driver that you are using to connect to Neo4j (check https://neo4j.com/developer/python/ to see the list of available drivers). If you are using the official neo4j-driver, the code you wrote is correct. In order execute the Cypher query, you could do something like this:
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()
Although âńōŋŷXmoůŜ’s answer will probably work, it is not recommended way to it.
See also:
I had tried below format and was working perfectly for me. I am using 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)