You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Neo4j Python Driver获取节点/关系的ID与标签?

解决方案:直接从Neo4j Python Driver的Record中提取节点/关系元数据

在Neo4j Python Driver 5.x版本中,data()、values()这类方法会自动将查询返回的节点/关系转换为仅包含属性的字典,导致丢失ID、标签、关系类型等元数据。但实际上,Record中存储的是Node和Relationship类型的原生实例,直接访问这些实例就能获取所有元数据,无需在Cypher中额外调用id()或labels()函数。

核心方法

  • 从Record中直接通过查询语句里的键名(如n、r)获取Node/RawRelationship实例
  • Node实例的关键属性:
    • element_id:Neo4j 5+推荐使用的全局稳定ID(替代旧版id)
    • labels:节点的标签列表(如["User", "Admin"])
    • properties:节点的属性字典
  • Relationship实例的关键属性:
    • element_id:关系的全局稳定ID
    • type:关系类型(如"FOLLOWS")
    • properties:关系的属性字典
    • start_node_element_id:关系起始节点的element_id
    • end_node_element_id:关系结束节点的element_id

示例代码

from neo4j import GraphDatabase

# 初始化Aura连接
driver = GraphDatabase.driver("neo4j+s://your-aura-instance-uri", auth=("username", "password"))

with driver.session() as session:
    # 执行带节点和关系的查询
    result = session.run("MATCH (user:User)-[rel:FOLLOWS]->(target:User) RETURN user, rel, target LIMIT 20")
    
    for record in result:
        # 提取起始节点信息
        user_node = record["user"]
        print(f"用户节点ID: {user_node.element_id}, 标签: {user_node.labels}, 属性: {user_node.properties}")
        
        # 提取关系信息
        follow_rel = record["rel"]
        print(f"关注关系ID: {follow_rel.element_id}, 类型: {follow_rel.type}, 属性: {follow_rel.properties}")
        print(f"起始节点ID: {follow_rel.start_node_element_id}, 目标节点ID: {follow_rel.end_node_element_id}")
        
        # 提取目标节点信息
        target_node = record["target"]
        print(f"目标用户节点ID: {target_node.element_id}, 标签: {target_node.labels}, 属性: {target_node.properties}")

driver.close()

关于graph()方法的补充

如果想用graph()批量获取所有节点和关系,可以直接访问返回Graph对象的nodes和relationships属性:

result = session.run("MATCH (n)-[r]->(m) RETURN n, r, m")
graph = result.graph()

# 遍历所有节点
for node in graph.nodes:
    print(f"节点ID: {node.element_id}, 标签: {node.labels}")

# 遍历所有关系
for rel in graph.relationships:
    print(f"关系ID: {rel.element_id}, 类型: {rel.type}, 起始节点ID: {rel.start_node_element_id}")

内容的提问来源于stack exchange,提问作者breach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:10:31