为什么d3.json返回“null”?

时间:2014-09-16 15:25:35

标签: javascript python json d3.js networkx

我有两个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),我只在本地工作。

编辑:

原始数据可在此处获取:

  • arcage:www.ericmajinglong.com/science/minto_america/arcage.json
  • force2:www.ericmajinglong.com/science/minto_america/force2.json

1 个答案:

答案 0 :(得分:1)

事实证明,罪魁祸首是存在无效的JSON。我的数据中存在NaN值。

对于像我这样的所有新手 - 如果你有像我这样的错误,请不要忘记检查NaN,并在里面估算一个合适的价值!我希望这能为你省去麻烦!