python查询neo4j的数据以字典的方式返回数据

本方法源自:https://www.cnblogs.com/mzyn22/p/neo4j-query-data.html

但是在实际使用的过程中,发现有BUG,修改了一下,贴出来(代码中红色加粗的位置):
 

def query_graph(query):
    data = graph.run(query).data()

    node_ids = []
    new_nodes = []
    new_links = []

    for a in data:
        for tk, tv in a.items():
            nodes = tv.nodes
            relations = tv.relationships
            for n in nodes:
                if n.identity in node_ids:
                    continue
                obj = {}
                obj["id"] = n.identity
                obj["label"] = []
                if n.labels is not None:
                    for la in n.labels:
                        obj["label"].append(la)
                for k, v in n.items():
                    obj[k] = v
                node_ids.append(n.identity)
                new_nodes.append(obj)
            for r in relations:
                if r.identity in new_links:
                    continue
                li = {}
                li["id"] = r.identity
                if r.types() is not None:
                    li["label"] = []
                    for la in r.types():
                        li["label"].append(la)
                li["source"] = r.start_node.identity
                li["target"] = r.end_node.identity
                for k, v in r.items():
                    li[k] = v
                node_ids.append(r.identity) # 此行去掉
                new_links.append(li)
    result = {}
    result["nodes"] = new_nodes
    result["links"] = new_links
    return result
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值