我使用以下代码获取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: 而还有一个问题是如果刷新http://127.0.0.1:5000/json,多刷新几次也就是多次重新运flask文件获取数据,部分null值就会出现,其余null值还是没有。
所以请教一下,这种问题应该如何解决?null值为什么会在关系数据出现?怎么能自动补全这些null值呢?
这个问题困扰很久了,希望有大佬能给一下建议。
多谢各位的解答!