【发布时间】:2020-08-16 14:50:10
【问题描述】:
我正在尝试为一组路由器显示一个菜单,该菜单由包含有关其状态的信息的字典描述。为此,我有一个函数将包含设备信息的字典routers 作为输入。字典被转换成字典对象列表,称为router_list,使用for循环按设备名称的值排序。所有设备都保存在menu_text变量中,该变量又用于枚举和打印设备。
当我运行这段代码时,我得到了这个错误:
python3 menu.py
Traceback (most recent call last):
File "menu.py", line 28, in <module>
'password': '2020'
File "menu.py", line 6, in show_menu
router_list.append("%s. %s " % ((i+2), value['name'],))
TypeError: string indices must be integers
这是我的代码:
def show_menu(routers):
router_list = []
i = 0
for key, value in enumerate(routers):
router_list.append("%s. %s " % ((i+2), value['name'],))
i = i + 1
menu_text = '\n'.join(router_list)
print(("""
---------------------------------------------------------
-----------------------------------------------------
0.EXIT
1.CONFIG ALL
"""+ menu_text +"""
---------------------------------------------------------
"""))
if __name__ == '__main__':
show_menu({
'name': 'cisco_ios',
'ip': '192.168.122.217',
'username': 'admin',
'password': '2020'
})
【问题讨论】:
-
您打算使用多少个路由器信息?菜单只会显示路由器的
name,对吧? -
它取决于环境先生,实际上,我想与另一个功能一起使用,通过从列表菜单中选择一个数字来对拓扑进行一些配置
标签: python json dictionary object