首页 > 解决方案 > TypeError: list indices must be integers or slices, not str, for osm_road in self.get_osm_objs()['road']:

问题描述

当我运行这段代码

def diff(self):
    for osm_road in self.get_osm_objs()['road']:
        osm_points = self.get_keypoints(osm_road.id)
        for mdm_road in self.get_mdm_road():
            mdm_points = mdm_road.shape
            if match().macth_by_mutiPoints(mdm_points,osm_points):
                if osm_road.tags['LINE_TYPE'] == "RoadCenter" and mdm_road.TravelDirection_type != 2:
                    print(osm_road.tags)
                    self.output_info('mxf中的poi{}和mdm中的poi{}的type不一致'.format(osm_road.id,mdm_road.id.count))
                if osm_road.tags['LINE_TYPE'] == "RoadCenter" and mdm_road.length != 2:
                    self.output_info('mxf中的poi{}和mdm中的poi{}的type不一致'.format(osm_road.id,mdm_road.id.count))
                if osm_road.tags['LINE_TYPE'] == "RoadCenter" and mdm_road.road_type != 2:
                    self.output_info('mxf中的poi{}和mdm中的poi{}的type不一致'.format(osm_road.id,mdm_road.id.count))
                    
if __name__ == "__main__":
    ROAD_diff("msd_1.0.xml", "mdm_1598425741707.db", "result.txt").diff()

我收到这个错误

    for osm_road in self.get_osm_objs()['road']:
TypeError: list indices must be integers or slices, not str

我如何解决它?

标签: python

解决方案


推荐阅读