You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python 3的ConfigParser中用分隔符解析一个键的多值?

用分隔符实现ConfigParser解析多值

当然可以通过设置分隔符来实现一个键对应多个值,而且不需要依赖JSON库,不过要注意选择不会和值本身包含的字符冲突的分隔符,避免解析出错。

推荐方案:使用无冲突的分隔符

比如选择分号;或者竖线|这类不会出现在URL中的符号作为分隔符,配置文件写法如下:

[sites]
urls=https://google.com;https://yahoo.com;https://gmail.com

对应的Python代码:

from configparser import ConfigParser

config = ConfigParser()
config.read('你的配置文件名.ini')

# 读取值并按分隔符分割成列表
urls_list = config.get('sites', 'urls').split(';')
print(urls_list)
# 输出结果:['https://google.com', 'https://yahoo.com', 'https://gmail.com']

不推荐:用冒号作为分隔符

如果一定要用冒号,会遇到URL本身包含冒号(https://里的)的问题,直接分割会把单个URL拆碎。即使转义URL里的冒号,处理起来也很繁琐,比如你提供的配置:

[sites]
urls=https\://google.com:https\://yahoo.com:https\://gmail.com

读取后需要先还原转义字符,再用特殊方式分割(不能直接按冒号split),代码会变得复杂:

from configparser import ConfigParser

config = ConfigParser()
config.read('你的配置文件名.ini')

raw_value = config.get('sites', 'urls')
# 先还原转义的://
processed_value = raw_value.replace('\://', '://')
# 通过拆分前缀的方式提取完整URL
urls_list = [f'https://{part}' for part in processed_value.split('https://')[1:]]
print(urls_list)

这种方式容易引发意外问题,所以更推荐用无冲突的分隔符。

内容的提问来源于stack exchange,提问作者Vinicius Gonçalves Melo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:12:46