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

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

个人导航

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

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

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

参考文章:各方资料

文章目录

  • [AI编程从入门到入土 配置文件](#[AI编程从入门到入土] 配置文件)
  • 个人导航
  • YAML
        • [1. 基础用法](#1. 基础用法)
        • [2. 特别用法](#2. 特别用法)
        • [3. python 读取 yaml](#3. python 读取 yaml)
  • TOML
        • [1. 基础用法](#1. 基础用法)
        • [2. 特别用法](#2. 特别用法)
        • [3. python 读取 toml](#3. python 读取 toml)
  • 对比表格

YAML

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

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

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

# 多行字符串(保留换行)
description: |
  我喜欢学习配置文件
  YAML 很好用
2. 特别用法
yaml 复制代码
# 多行字符串(不保留换行)
intro: >
  我正在学习
  YAML 和 TOML
3. python 读取 yaml
py 复制代码
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. 基础用法
toml 复制代码
# 注释
name = "小明"
age = 20
is_student = true
score = 0.0

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

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

# 多行字符串(保留换行)
description = """
我喜欢学习配置文件
TOML 非常清晰
"""
2. 特别用法
toml 复制代码
# 嵌套对象
[school.info]
name = "第一中学"
address = "北京"
3. python 读取 toml
py 复制代码
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
相关推荐
2分钟速写快排1 小时前
什么是 RAG?如何用 RAG 实现一个用户记忆?
前端·后端·ai编程
沧沧凉凉1 小时前
同一个 Blender 建模,Claude 两个模型都翻车,GPT-6 一次过
人工智能·游戏·ai编程
三8442 小时前
redis防御加固与安全基线
数据库·redis·安全·应急响应·防御
lhldsg2 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都2 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒2 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
辰烨chenye2 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
IT大白鼠2 小时前
MySQL 分布式集群系列 · 第四篇——实操部署指南:从零搭建生产级 MySQL NDB 集群
数据库·分布式·mysql
IT大白鼠2 小时前
MySQL 分布式集群系列 · 第三篇——核心原理精讲:NDB 自动分片、多主写入与数据同步
数据库·分布式·mysql