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]
这是我的代码行。我不断收到 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]