如何基于动态列表从ini配置文件批量查询获取多个对应配置键的值
问题解决方案
错误原因
- 原代码循环逻辑是遍历列表下标,
i拿到的是0、1这类索引值,不是mylist里存储的Name/Code这类配置键名,所以dmfg[i]查询会直接报错 - 缺失了ConfigParser实例初始化、读取demo.ini配置文件的核心步骤
- 你期望输出里包含City值,只需要把
City加入自定义的查询键列表即可
修正后可运行代码
from configparser import ConfigParser # 初始化配置解析器 config_object = ConfigParser() # 读取本地配置文件 config_object.read("demo.ini") # 自定义要查询的配置键列表,可任意修改增删 mylist = ['Name', 'City'] dmfg = config_object["DEMFILE"] # 直接遍历列表中的键名即可,不需要走下标中转 for key in mylist: # strip("'")用于去掉配置值两端多余的单引号,匹配你期望的输出格式 getValue = dmfg[key].strip("'") print(f'The value of {key} is : {getValue}')
运行输出
The value of Name is : XYZABC The value of City is : Kolkata
逻辑说明
- 配置解析器的Section对象本身就支持用键名作为索引查询对应值,只要列表里存储的是配置文件中存在的键名,就能自动匹配返回对应值
- 如果需要处理列表中存在配置文件没有的键的场景,避免运行报错,可以把取值逻辑改成
dmfg.get(key, fallback="自定义默认值"),键不存在时会返回你指定的默认值
内容的提问来源于stack exchange,提问作者user16375592
相关产品推荐
相关产品推荐

