Python Driver
Connect to Traverse from Python using the official Neo4j Bolt driver.
Install
pip install neo4j
Note: The package name is neo4j (not neo4j-driver, which is deprecated).
Connect
from neo4j import GraphDatabase
driver = GraphDatabase.driver("bolt://localhost:7690")
# With authentication
driver = GraphDatabase.driver(
"bolt://localhost:7690",
auth=("admin", "s3cret")
)
Run Queries
records, summary, keys = driver.execute_query(
"MATCH (n:Person) WHERE n.age > $min_age RETURN n.name, n.age",
min_age=25,
)
for record in records:
print(record["n.name"], record["n.age"])
Select a Database
records, summary, keys = driver.execute_query(
"MATCH (n) RETURN count(n) AS count",
database_="mydb",
)
print(records[0]["count"])
Write Data
driver.execute_query(
"CREATE (p:Person {name: $name, age: $age})",
name="Alice", age=30,
)
Session-Based Queries
with driver.session(database="mydb") as session:
result = session.run(
"MATCH (n:Person) RETURN n.name",
)
for record in result:
print(record["n.name"])
Transactions
with driver.session() as session:
# Transaction function (recommended — auto-retries on transient errors)
def create_person(tx, name, age):
tx.run("CREATE (p:Person {name: $name, age: $age})", name=name, age=age)
session.execute_write(create_person, "Dave", 28)
# Explicit transaction
tx = session.begin_transaction()
tx.run("CREATE (p:Person {name: 'Bob'})")
tx.run("CREATE (p:Person {name: 'Carol'})")
tx.commit()
Async
from neo4j import AsyncGraphDatabase
driver = AsyncGraphDatabase.driver("bolt://localhost:7690")
records, summary, keys = await driver.execute_query(
"MATCH (n) RETURN n LIMIT 5"
)
await driver.close()
Graph Types
records, summary, keys = driver.execute_query(
"MATCH (n:Person)-[r:KNOWS]->(m) RETURN n, r, m LIMIT 1"
)
record = records[0]
node = record["n"]
print(node.labels) # frozenset({'Person'})
print(node["name"]) # property access
rel = record["r"]
print(rel.type) # 'KNOWS'
print(rel.start_node) # start node
print(rel.end_node) # end node
Close the Driver
driver.close()
Note: Traverse speaks Bolt 5.1–6.0. See Bolt Protocol for details.