阅读json图表networkx文件

Mig*_*uel 6 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)
Run Code Online (Sandbox Code Playgroud)

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

def read_json_file(filename):
    graph = json_graph.loads(open(filename))
    return graph
Run Code Online (Sandbox Code Playgroud)

从这里读取函数的位置:

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文件?

Pyn*_*hia 11

鉴于官方文档的说法,我认为你正在寻找类似的东西

def read_json_file(filename):
    with open(filename) as f:
        js_graph = json.load(f)
    return json_graph.node_link_graph(js_graph)
Run Code Online (Sandbox Code Playgroud)

即因为json文件是用来编写的json.dump,所以用来json.load回读内容.

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

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

  • `node_link_graph` 现在直接位于主 networkx 包下,因此您可以执行 `nx.node_link_graph(js_graph)` 操作。 (2认同)