NetworkX,如何成功捕获network.exception.NetworkXError当节点不在图中时?

2024-10-01 15:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当一个节点不在图中时我得到异常错误。当我试图抓住并处理它时,我做不到(所以我一定是做错了什么)。如何捕获和处理networkx.exception.NetworkXError?在

错误如下:

<snip> raise NetworkXError("The node %s is not in the digraph."%(n,)) networkx.exception.NetworkXError: The node 33293542 is not in the digraph.

下面是我如何抓住它并处理它:

try:
    path_len = nx.shortest_path_length(G,uNode, vNode)
except (nx.NetworkXNoPath, nx.exception.NetworkXError) as e:
    print e
    continue 

我也尝试过:

^{pr2}$

我在两个列表中维护uNode和{},我可以做一个:if v in target_nodes:,但是在我这样做之前,我想知道是否有一种优雅的方法来处理这个NetworkX exception?在


Tags: thepathinnetworkxnode节点is错误
2条回答

它应该是nx.exception.NetworkXError,因此:

import networkx as nx

try:
    nx.shortest_path_length(G,0,1)
except nx.exception.NetworkXError:
    print("not found")

如果您所做的只是确保不尝试获取不存在节点的路径长度,那么为什么不直接使用^{}

if G.has_node(uNode) and G.has_node(vNode):
    path_len = nx.shortest_path_length(G,uNode, vNode)

编辑

以下几点对我有用:

^{pr2}$

相关问题 更多 >

    热门问题