[AI编程从入门到入土] 配置文件

个人导航

知乎:https://www.zhihu.com/people/byzh_rc

CSDN:https://blog.csdn.net/qq_54636039

注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码

参考文章:各方资料

YAML

  • key: value
    (冒号后面必须加空格)
  • 缩进用 2 个空格(不能用 Tab)
  • 大小写敏感
  • # 是注释
1. 基础用法
# 注释
name: "小明"
age: 20
is_student: true
score: null

# 嵌套对象
person:
  name: 小红
  age: 19

# 数组(列表)
hobbies:
  - 游泳
  - 编程
  - 看书

# 多行字符串(保留换行)
description: |
  我喜欢学习配置文件
  YAML 很好用
2. 特别用法
# 多行字符串(不保留换行)
intro: >
  我正在学习
  YAML 和 TOML
3. python 读取 yaml
import yaml

with open("test.yaml", "r", encoding="utf-8") as f:
    data = yaml.safe_load(f)

# 普通键值对
print("姓名:", data["name"])
print("年龄:", data["age"])
print("是否学生:", data["is_student"])
print("分数:", data["score"])

# 嵌套对象
print("嵌套人物姓名:", data["person"]["name"])
print("嵌套人物年龄:", data["person"]["age"])

# 数组(列表)
print("爱好列表:", data["hobbies"])
for hobby in data["hobbies"]:
    print("-", hobby)

# 字符串
print("描述:")
print(data["description"])

TOML

  • key = value
  • 等号两边可以加空格,也可以不加
  • 大小写敏感
  • # 是注释
1. 基础用法
# 注释
name = "小明"
age = 20
is_student = true
score = 0.0

# 一级对象
[person]
name = "小红"
age = 19

# 数组
hobbies = ["游泳", "编程", "看书"]

# 多行字符串(保留换行)
description = """
我喜欢学习配置文件
TOML 非常清晰
"""
2. 特别用法
# 嵌套对象
[school.info]
name = "第一中学"
address = "北京"
3. python 读取 toml
import toml

data = toml.load("config.toml")

# 普通键值对 
print("===== 基础数据 =====")
print("姓名:", data["name"])
print("年龄:", data["age"])
print("是否学生:", data["is_student"])
print("分数:", data["score"])

# 一级对象 [person]
print("\n===== 人物信息 =====")
print("姓名:", data["person"]["name"])
print("年龄:", data["person"]["age"])

# 数组 
print("\n===== 爱好列表 =====")
print("全部爱好:", data["hobbies"])
for h in data["hobbies"]:
    print("-", h)

# 多行字符串
print("\n===== 描述信息 =====")
print(data["description"])

# 嵌套对象 [school.info]
print("\n===== 学校信息 =====")
print("学校名称:", data["school"]["info"]["name"])
print("学校地址:", data["school"]["info"]["address"])

对比表格

对比项 YAML TOML
键值写法 key: value key = value
缩进要求 严格依赖缩进(2 个空格) 不依赖缩进,格式更自由
对象 / 嵌套 靠缩进嵌套 [table][a.b] 表示层级
大小写 敏感 敏感
注释符号 # #
语法容错 缩进错就解析失败,易踩坑 语法严格、清晰,不易出错
常见使用场景 Docker、K8s、CI Rust、Python
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐