Neo4j Python Driver:图数据库的官方 Python 驱动

Neo4j 官方维护的 Python 驱动,目前收获了 1,046 个 Star:

正文顶部截图

README区域截图

这是 Neo4j 图数据库的官方 Python 驱动,用于在 Python 应用中连接和操作 Neo4j 数据库。驱动遵循语义化版本控制,主版本内的升级不会产生破坏性 API 变更。

该驱动目前支持 Python 3.10 到 3.14 的全线版本。

安装

通过 pip 直接安装:

pip install neo4j

旧包名 neo4j-driver 已弃用,从 6.0.0 开始不再更新,建议统一使用 neo4j

如需提升性能,可额外安装 Rust 扩展 neo4j-rust-ext,该扩展默认不包含在基础包中。

快速上手

以下代码演示了如何连接 Neo4j 数据库,创建节点关系并查询结果:

from neo4j import GraphDatabase, RoutingControl


URI = "neo4j://localhost:7687"
AUTH = ("neo4j", "password")


def add_friend(driver, name, friend_name):
    driver.execute_query(
        "MERGE (a:Person {name: $name}) "
        "MERGE (friend:Person {name: $friend_name}) "
        "MERGE (a)-[:KNOWS]->(friend)",
        name=name, friend_name=friend_name, database_="neo4j",
    )


def print_friends(driver, name):
    records, _, _ = driver.execute_query(
        "MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name = $name "
        "RETURN friend.name ORDER BY friend.name",
        name=name, database_="neo4j", routing_=RoutingControl.READ,
    )
    for record in records:
        print(record["friend.name"])


with GraphDatabase.driver(URI, auth=AUTH) as driver:
    add_friend(driver, "Arthur", "Guinevere")
    add_friend(driver, "Arthur", "Lancelot")
    add_friend(driver, "Arthur", "Merlin")
    print_friends(driver, "Arthur")

代码中 GraphDatabase.driver() 建立数据库连接,execute_query() 执行 Cypher 查询。RoutingControl.READ 用于将读操作路由到合适的集群节点。

主要特性

驱动的核心能力围绕 Neo4j 的 Bolt 协议展开。Bolt 是 Neo4j 设计的二进制通信协议,专为高性能图数据查询优化。

驱动提供了连接池管理、自动重试、集群路由等生产环境必需的功能。对于使用 Neo4j 集群的部署,驱动能够自动识别读写操作并将请求分发到正确的节点。

相关资源

该项目提供了完善的文档支持。Neo4j 官方 Python 驱动手册适合入门学习,API 文档覆盖了全部接口定义。Cypher 语法速查表可以帮助快速上手图查询语言。GraphAcademy 还提供免费的中文在线课程。

项目 Wiki 中包含了详细的变更日志,方便追踪每个版本的更新内容。迁移指南则帮助用户在不同版本间平滑升级。

emy 还提供免费的中文在线课程。

项目 Wiki 中包含了详细的变更日志,方便追踪每个版本的更新内容。迁移指南则帮助用户在不同版本间平滑升级。

更多推荐