代码中使用到了dict,需要获取到其中的keys,但是python3正常工作,使用python2就没有办法
1. 源代码
rostopic_dict = {uav_name+'/mavros/imu/data': 'sensor_msgs/Imu',
uav_name+'/mavros/local_position/pose': 'geometry_msgs/PoseStamped',
uav_name+'/mavros/globe_position/pose': 'geometry_msgs/PoseStamped',
uav_name+'/mavros/battery': 'sensor_msgs/BatteryState',
uav_name+'/mavros/setpoint_raw/local': 'mavros_msgs/PositionTarget',
}
rospy.Subscriber(list(rostopic_dict.keys())[0], Imu, imu_call)
上述代码,应该是正常获取到keys并运行,但是python2无法正常运行
2. 修改
感觉可以使用list,这样至少不会出错了吧。
那么在python2中,dict是如何使用keys呢,测试一下
3. 测试
测试结果:在python2中,
rostopic_dict.keys()
可以正常获取到所有的keys,但问题就是,获取得到的keys是乱的,不是按照原本顺序进行的,所以导致了上述的错误。
最后决定,还是使用list