类型错误:'Route'对象不可下标操作 Python

0 投票
1 回答
875 浏览
提问于 2025-04-17 17:07

这是我写的一个脚本,它可以读取一个JSON文件,并把一些路径添加到一个图形中。

 for route in data['routes']:
        route = Route(route['ports'][0], route['ports'][1], route['distance'])
        self.add_route(route)
        route_2 = Route (route['ports'][1], route['ports'][0], route['distance'])
        self.add_route(route_2)

但是它给我报了这个错:

Traceback (most recent call last):
  File "C:\workspace\Assignment2.1\src\Main.py", line 75, in <module>
    graph.build_from_file()
  File "C:\workspace\Assignment2.1\src\Graph.py", line 195, in build_from_file
    route_2 = Route (route['ports'][1], route['ports'][0], route['distance'])
TypeError: 'Route' object is not subscriptable

注意到它在第二次调用Route构造函数的时候出错,而不是第一次。有没有人能帮我解决这个问题?

1 个回答

4

你把两个不同的东西都叫做 route

在你创建了第一个 Route 之后,route 这个变量就指向了它,而不是你原来的数据。

修正后的代码:

for route in data['routes']:
    route_1 = Route(route['ports'][0], route['ports'][1], route['distance'])
    self.add_route(route_1)
    route_2 = Route(route['ports'][1], route['ports'][0], route['distance'])
    self.add_route(route_2)

撰写回答