请教py2neo读取neo4j的关系数据出现缺失值null的问题?
发布于 4 年前 作者 123abc 1300 次浏览 来自 问答

我使用以下代码获取neo4j数据库里的节点和关系数据,并将它们放到json文件里: def buildNodes(nodeRecord): data = {“id”: nodeRecord.get(‘n’).get(‘id’), “name”: nodeRecord.get(‘n’).get(‘name’)} return data def buildEdges(relationRecord): data = {“source”: relationRecord.get(‘r’).start_node.get(‘id’), “target”: relationRecord.get(‘r’).end_node.get(‘id’), “name”: relationRecord.get(‘r’).get(‘relation’)} return data

@app.route(’/json’) def jsonifys2(): nodes = list(map(buildNodes, graph.run(‘MATCH (n) RETURN n’).data())) edges = list(map(buildEdges, graph.run(‘MATCH ()-[r]->() RETURN r’).data())) jsonData = json.dumps({‘data’: nodes, ‘links’: edges}, ensure_ascii=False) print(nodes) print(edges)

但出现了一个问题是,获取的节点数据是没有问题的,但获取的关系数据有部分值出现缺失null值: 例如http://127.0.0.1:5000/json里: { “name”: “投资”, “source”: “57”, “target”: null }, { “name”: “属于”, “source”: null, “target”: null }, 输出的edges:image.png 而还有一个问题是如果刷新http://127.0.0.1:5000/json,多刷新几次也就是多次重新运flask文件获取数据,部分null值就会出现,其余null值还是没有。

所以请教一下,这种问题应该如何解决?null值为什么会在关系数据出现?怎么能自动补全这些null值呢?

这个问题困扰很久了,希望有大佬能给一下建议。

多谢各位的解答!

1 回复

这么久了,不知道解决了没有。有空是你录入的时候定义了字段但没赋值,要么你录入的时候检查一下,或者读出后对空值处理一下,就可以转json之类的处理了

回到顶部