我有两个JSON文件,它们是NetworkX的节点链接转储。
一个叫force2.json
。另一个叫arcage.json
。里面的数据基本上是等价的。 force2.json
包含的节点链接多于arcage.json
,但两者都被NetworkX转储
json_graph.node_link_data(graph)
接着是
json.dump(jsongraph, open('viz/agearc.json','w')) #(or force2.json)
在我的javascript文件中,当我使用:
d3.json('force2.json', function(d) {
console.log(d) })
我可以正确检查图形对象。
然而,当我这样做时:
d3.json('arcage.json', function(d) {
console.log(d) })
我得到null
返回。我无法解释为什么 - 也许有人可以帮助我吗?
对于记录,arcage.json
是无向图,force2.json
是有向图。这两个图具有基本相同的节点链接信息,除了arcage.json
在节点中有一个额外的文本属性,以及链接中的附加文本属性,从NetworkX进行序列化转储时没有出错。
我还检查了网络间的帮助,发现我需要运行一个HTTP服务器。我这样做(工作目录中python -m http.server
),我只在本地工作。
编辑:
原始数据可在此处获取:
答案 0 :(得分:1)
事实证明,罪魁祸首是存在无效的JSON。我的数据中存在NaN
值。
对于像我这样的所有新手 - 如果你有像我这样的错误,请不要忘记检查NaN
,并在里面估算一个合适的价值!我希望这能为你省去麻烦!