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

如何用Neo4j Python库将查询结果转为Web界面式JSON?

解决Neo4j Python结果对象转Web界面风格JSON的问题

Neo4j Python官方驱动本身没有直接提供一键转换成Web界面表格格式JSON的函数,但可以通过结果对象的原生方法手动构造出一致的结构。

实现步骤

  • 遍历查询结果中的每个记录,对每个节点/关系对象提取关键信息:
    • elementId():获取节点/关系的元素ID(Neo4j 4.4+推荐使用)
    • id():获取旧版内部ID(Neo4j 5.x已标记为过时)
    • labels():获取节点的标签列表(仅节点可用)
    • type():获取关系的类型(仅关系可用)
    • properties():获取所有属性键值对

示例代码

比如查询返回节点n,可以这样处理:

from neo4j import GraphDatabase
import json

driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password"))

def get_full_json_result(query):
    with driver.session() as session:
        result = session.run(query)
        full_results = []
        for record in result:
            record_data = {}
            for key, value in record.items():
                # 处理节点对象
                if hasattr(value, 'labels'):
                    record_data[key] = {
                        "identity": value.id(),
                        "elementId": value.elementId(),
                        "labels": value.labels(),
                        "properties": value.properties()
                    }
                # 处理关系对象
                elif hasattr(value, 'type'):
                    record_data[key] = {
                        "identity": value.id(),
                        "elementId": value.elementId(),
                        "type": value.type(),
                        "properties": value.properties(),
                        "startNode": value.start_node.id(),
                        "endNode": value.end_node.id()
                    }
                # 处理普通属性值
                else:
                    record_data[key] = value
            full_results.append(record_data)
        return json.dumps(full_results, indent=2)

# 测试调用
query = "MATCH (n) RETURN n LIMIT 1"
print(get_full_json_result(query))

这段代码输出的JSON结构会和Neo4j Web界面表格标签页完全一致,包含identity、elementId、labels(节点)、properties等完整字段。

注意事项

  • 若使用Neo4j 5.x版本,建议优先使用elementId()替代id()
  • 关系对象需要额外提取startNode和endNode的ID,才能和Web界面输出完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 06:22:05