我对NetworkX documentation的阅读表明这应该有效,但似乎不行?在
考虑:
import networkx as nx
g = nx.MultiDiGraph()
g.add_nodes_from([0, 1])
g.add_edge(0,1)
g.add_edge(0,1)
g.edges() # returns [(0, 1), (0, 1)]
d = nx.to_dict_of_dicts(g) # returns {0: {1: {0: {}, 1: {}}}, 1: {}}
g2 = nx.from_dict_of_dicts(d, multigraph_input=True)
# or, equivalently?, g2 = MultiDiGraph(d)
g2.edges() # only returns [(0,1)]
我是在这里犯了一个小错误,还是这是一个bug?在
对于我的应用程序,我找到了一个更好的替代方法,即使用networkx.readwrite.json_graph
进行序列化,但是我想我应该把这个问题留在这里,以防对其他人有用。在
问题是
nx.from_dict_of_dicts()
的默认图形输出似乎是一个简单的图形。在尝试创建一个新的空图,该图的类型与您想要的输出相同,所以在您的例子中是一个多有向图。然后使用
^{pr2}$nx.from_dict_of_dicts()
的create_using
参数来确保新图形的类型:成功!在
相关问题 更多 >
编程相关推荐