从嵌套字典生成 Python 中的网络图

Generate Network Graph in Python from nested dictionary

我有一个输入字典,例如:

d={'node1':{'node1_1':1.2,'node1_2':1.3,'node1_3':1.2},'node2': 
           {'node2_1':1.3,'node2_2':1.3,'node2_3':1.4}}

在输出中,node1与权重为1.2的node1_1、权重为1.3的node1_2、权重为1.2的节点1-3有关系。 node2 的情况也是如此,它与节点 2_1、node2_2 和 node2_3 以及它们各自的权重相关联。 在 Python?

中,是否有任何通用的方法可以使用 NetworkKx 或通过任何其他方式从输入字典生成有向图

IIUC,可以使用nx.from_dict_of_lists:

d={'node1':{'node1_1':1.2,'node1_2':1.3,'node1_3':1.2},
   'node2':{'node2_1':1.3,'node2_2':1.3,'node2_3':1.4}}

import networkx as nx
G = nx.from_dict_of_lists(d, create_using=nx.DiGraph)

要获得权重,请使用 nx.from_dict_of_dicts:

d2 = {k:{k2: {'weight': v2} for k2,v2 in v.items()} for k,v in d.items()}
G = nx.from_dict_of_dicts(d2, create_using=nx.DiGraph)

输出: