如何提取Python中inquirer模块返回字典的指定值?
如何直接获取inquirer Checkbox返回字典中的具体值
当然可以直接拿到你要的'Notes'值啦!因为inquirer的Checkbox组件返回的字典里,'Apps'对应的是一个列表(哪怕只选了一个选项),所以你只需要先取出这个列表,再根据索引拿到对应的元素就行。
具体操作步骤
- 先通过字典的键
'Apps'获取到选中项的列表:selected_list = app_sel['Apps'] - 如果你确定用户只会选一个选项(或者只需要第一个选中的项),直接取列表的第0个索引:
selected_app = selected_list[0] # 这里就得到'Notes'了
优化后的代码示例
我给你调整了原代码,加上了取值逻辑和边界判断(防止用户没选就提交的情况):
import os import inquirer def app_menu(): selections = [inquirer.Checkbox('Apps', message='Please select your app', choices=['Weather', 'Notes', 'Calculator', 'Exit'])] app_sel = inquirer.prompt(selections) # 先判断是否有有效选择 if app_sel and 'Apps' in app_sel: selected_apps = app_sel['Apps'] # 获取第一个选中的应用(比如你要的'Notes') if selected_apps: first_app = selected_apps[0] print(f"你选中的第一个应用是: {first_app}") # 如果你需要处理所有选中的应用,可以用循环遍历 print("\n所有选中的应用:") for app in selected_apps: print(f"- {app}") app_menu()
额外提醒
因为Checkbox是支持多选的,所以返回的列表可能包含多个元素。如果你的场景其实是单选,可以考虑换成inquirer的List组件,它会直接返回单个字符串值,不需要处理列表~
内容的提问来源于stack exchange,提问作者user9868018
相关产品推荐
相关产品推荐

