Python Neo4j 代码驱动
此处展示的代码使用了官方的 Neo4j Python 驱动程序,您可以在此 gist 中找到:https://gist.github.com/jalakoo/9e0ff836bc75e1a2b9945baf2eede4c4
本示例使用了一个公共演示数据库,其中包含含有 Book(书籍)节点及其相关实体的 goodreads 数据集。

创建项目文件
创建一个名为 app.py 的文件。
接下来,创建并启动一个虚拟环境,然后下载 neo4j 驱动程序。
python -m venv venv source venv/bin/activate pip install neo4j
连接到数据库
在 app.py 文件中,要连接到 Neo4j,您需要连接 URI、用户名、密码和数据库名称。本示例中提供了演示服务器的凭据。
from neo4j import GraphDatabase # Read-only credentials URI = "neo4j+s://demo.neo4jlabs.com" USERNAME = "goodreads" PASSWORD = "goodreads" DATABASE = "goodreads"
neo4j+s:// 协议方案确保了与数据库的加密连接。
运行查询
execute_query API 是使用 Python 驱动程序运行查询的推荐方式。它会自动管理会话、事务和重试,从而减少样板代码。
在本示例中,我们定义了一个接受 Cypher 查询语句和参数字典的 main 函数。
# 1. Using the new `execute_query` API
def main(query, params):
with GraphDatabase.driver(URI, auth=(USERNAME, PASSWORD)) as driver:
records, summary, keys = driver.execute_query(
query,
parameters_ = params,
database_ = DATABASE
)
# Convert records into Python dictionaries
return [record.data() for record in records]
该方法返回三个值:
- records → 实际的查询结果
- summary → 关于查询执行的元数据(例如返回了多少条结果)
- keys → 查询返回的属性名称
大多数情况下,您只需要关注 records(记录)。在此处,每条记录都被转换为字典,以便在 Python 中更方便地使用。
查询示例
以下示例会创建或复用一个具有指定标题的 Book 节点,并最多返回 10 条结果。
if __name__ == "__main__":
query = """
MERGE (b:Book {title: $title})
RETURN b.title as title
LIMIT $limit
"""
params = {
"title": "The Great Gatsby",
"limit": 10
}
print(main(query, params))
执行后,该脚本将打印出一个包含书籍标题的字典列表,展示了如何传递参数并获取结果。
运行脚本
您可以在命令行中运行该脚本:
python neo4j_example.py
请将 neo4j_example.py 替换为您保存代码的文件名。


