NetworkX 中的 KeyError "attr_dict"

KeyError "attr_dict" in NetworkX

这是我的代码行。我不断收到 KeyError: 'attr_dict'

edge_origins = [e[2]["attr_dict"]["Node1_reference"] for e in g.edges(data=True)]

这是错误的截图:

在使用 data=True kwarg 遍历边时,仅当边有一些 data/attributes 时才会出现 attr_dict,否则字典将为空。

为了使您的代码对这种情况更加健壮,您可以使用 .get 方法:

# note that this will return None for edges without data
edge_origins = [e[2].get("attr_dict", {}).get("Node1_reference") for e in g.edges(data=True)]

这是一个可重现的例子:

import networkx as nx

G = nx.path_graph(3)
G.add_edge(2, 3, weight=5)
print([e[2].get("weight") for e in G.edges(data=True)])
# [None, None, 5]