Python配置文件管理教程_JSONINIYAML读取写入

12次阅读

python配置管理核心是选格式(jsON/INI/YAML)并安全读写:json轻量适扁平配置,内置模块需防敏感信息;INI分节清晰适本地工具,configparser需检查读取结果;YAML表达力强适复杂场景,须用safe_load防RCE。

Python配置文件管理教程_JSONINIYAML读取写入

Python 中管理配置文件,核心是根据项目需求选择合适格式(JSON、INI、YAML),再用标准或第三方库安全读写。关键不是“怎么写语法”,而是“怎么设计结构、避免硬编码、防止敏感信息泄露、支持环境切换”。下面分三类讲清实用要点。

JSON:轻量、跨语言、适合简单结构

适合存储 API 地址、开关标志、静态参数等扁平化配置。Python 内置 json 模块开箱即用,无需安装额外依赖。

  • 读取时用 json.load()(文件对象)或 json.loads()字符串),注意捕获 json.JSONDecodeError 异常
  • 写入推荐加 indent=2ensure_ascii=False,保证中文可读、格式清晰
  • 不要把密码、密钥存 JSON——它不加密也不支持注释,仅作数据载体

INI:兼容传统、分节清晰、适合本地工具配置

windows 风格的键值对 + 分节(如 [database]),Python 内置 configparser 完全支持。

  • 读取前调用 config.read(),建议检查返回列表是否为空,避免静默失败
  • 获取值统一用 get() 方法(如 config.get(‘db’, ‘host’)),它自动处理类型转换和默认值
  • 写入需先修改 ConfigParser 实例,再用 write() 输出到文件;注意手动添加换行或头部注释需额外处理

YAML:表达力强、支持嵌套与引用、适合复杂配置

比 JSON 更易读,比 INI 更灵活,常用于 flask/Django 项目、CI/CD 配置。需安装 PyyAMLpip install pyyaml

  • 读取优先用 yaml.safe_load(),禁用 yaml.load()(有远程代码执行风险)
  • 写入用 yaml.dump(),加上 allow_unicode=Truedefault_flow_style=False 保持可读性
  • 支持锚点(&common)和引用(*common),适合多环境共用字段(如日志路径、基础 URL)
text=ZqhQzanResources