Python 从嵌套字典中获取值

Python 从嵌套字典中获取值,python,dictionary,networkx,Python,Dictionary,Networkx,在编写Dijkstra函数寻找有向图中的最短路径时,我遇到了一个问题。发生错误:不支持+:“AtlasView”和“int”的操作数类型。 在这里,我传递错误发出的代码行: for childNode, weight in graph[minNode].items(): if weight + shortest_distance[minNode] < shortest_distance[childNode]: 对于childNode,图[minNode]中的权重。项() 如果权重

在编写Dijkstra函数寻找有向图中的最短路径时,我遇到了一个问题。发生错误:
不支持+:“AtlasView”和“int”的操作数类型。
在这里,我传递错误发出的代码行:

for childNode, weight in graph[minNode].items():
    if weight + shortest_distance[minNode] < shortest_distance[childNode]:
对于childNode,图[minNode]中的权重。项()
如果权重+最短距离[minNode]<最短距离[childNode]:
图形表示如下所示:

float(weight) + float(shortest_distance[minNode])

添加时必须将两个变量转换为同一类型,因此如下所示:

float(weight) + float(shortest_distance[minNode])

请发布完整的错误和循环。您可能希望为我们提供示例。因此,整个循环是:对于childNode,图[minNode]中的权重。items():如果权重+最短距离[minNode]<最短距离[childNode]:最短距离[childNode]=权重+最短距离[minNode]上一个[childNode]=minNode,整个错误为:如果权重+最短_距离[minNode]<最短_距离[childNode]:类型错误:不支持的操作数类型对于+:“AtlasView”和“int”,请编辑问题以添加完整的错误消息。若要查找您的问题,我建议在错误行之前添加一个打印
weight
的命令。我想您会发现
weight
不是您认为的那样。这样做可以避免错误:float()参数必须是字符串或数字,而不是“AtlasView”,因为您有类型为“AtlasView”的对象。Python(和我)不知道它是什么,也不知道如何将其转换为数字或如何将其添加到另一个值。