阅读json图表networkx文件

时间:2016-01-07 20:59:18

标签: python json networkx

我正在使用这个简单的python函数编写networkx图:

from networkx.readwrite import json_graph
def save_json(filename,graph):
    g = graph
    g_json = json_graph.node_link_data(g)
    json.dump(g_json,open(filename,'w'),indent=2)

并尝试使用以下方式加载图表:

def read_json_file(filename):
    graph = json_graph.loads(open(filename))
    return graph

从这里读取函数:

http://nullege.com/codes/search/networkx.readwrite.json_graph.load

我的问题是给我错误:

AttributeError:' module'对象没有属性' load'

这是有道理的,因为很明显来自Networkx文档,没有加载方法:

https://networkx.github.io/documentation/latest/reference/readwrite.json_graph.html#module-networkx.readwrite.json_graph

所以,我的问题是如何加载包含networkx图的json文件?

1 个答案:

答案 0 :(得分:9)

鉴于official docs的说法,我认为你正在寻找像

这样的东西
def read_json_file(filename):
    with open(filename) as f:
        js_graph = json.load(f)
    return json_graph.node_link_graph(js_graph)

即。由于json文件是使用json.dump编写的,因此请使用json.load来回读内容。

然后从加载的字典中创建图形。

注意:我从未使用过json_graph包,所以我忽略了正确的选项,以便重新创建特定类型的图表。你可能想在文档中浏览它们,似乎有很多。