初探Yaml配置文件
本文最后更新于400 天前,其中的信息可能已经过时,如有错误请发送邮件到blue16@email.swu.edu.cn

简介

YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,常用于配置文件。YAML的语法简洁明了,支持多种数据结构,如标量(scalar)、映射(mapping)和序列(sequence)。

我们常用的配置文件:properties、ini、json。

语法格式

下面是一个yaml示例:

server_id: "1"
server_name: "Server1"
server_ip: "192.168.1.1"
network: 100.0
performance: 1000
capabilities:
  - server_id: "1"
    capability_type: "LLM_CHAT"
    location: "LOCAL"
    name: "Chat Capability"
  - server_id: "2"
    capability_type: "IMAGE_OCR"
    location: "REMOTE"
    name: "OCR Capability"
  1. 标量(Scalar)
    • 单个值,如字符串、数字等。
    • 例如:server_id: "1"server_name: "Server1"network: 100.0
  2. 映射(Mapping)
    • 键值对的集合。
    • 例如:整个文件就是一个映射,包含多个键值对。
  3. 序列(Sequence)
    • 有序的值列表,用 - 表示。
    • 例如:capabilities 下面的每个能力都是一个映射,这些映射组成一个序列。

读写方法

用Python写入:

import yaml

# 定义配置数据
config = {
    "server_id": "1",
    "server_name": "Server1",
    "server_ip": "192.168.1.1",
    "network": 100.0,
    "performance": 1000,
    "capabilities": [
        {
            "server_id": "1",
            "capability_type": "LLM_CHAT",
            "location": "LOCAL",
            "name": "Chat Capability"
        },
        {
            "server_id": "2",
            "capability_type": "IMAGE_OCR",
            "location": "REMOTE",
            "name": "OCR Capability"
        }
    ]
}

# 将配置数据写入 YAML 文件
with open('config.yaml', 'w') as f:
    yaml.dump(config, f, default_flow_style=False)

print("配置文件已保存")

用Python读取:

import yaml

# 从 YAML 文件中读取配置数据
with open('config.yaml', 'r') as f:
    config = yaml.safe_load(f)

# 打印配置数据
print(config)

# 访问特定的配置项
server_id = config['server_id']
server_name = config['server_name']
server_ip = config['server_ip']
network = config['network']
performance = config['performance']
capabilities = config['capabilities']

print(f"Server ID: {server_id}")
print(f"Server Name: {server_name}")
print(f"Server IP: {server_ip}")
print(f"Network: {network}")
print(f"Performance: {performance}")
print("Capabilities:")
for capability in capabilities:
    print(f"  - Server ID: {capability['server_id']}, Type: {capability['capability_type']}, Location: {capability['location']}, Name: {capability['name']}")

如何手搓一个yaml

关键:用空格缩进,不要用Tab。

一些核心:

  • 缩进量:通常使用2个或4个空格进行缩进。保持一致的缩进量可以避免解析错误。
  • 空格:不要使用制表符(Tab),只使用空格。
  • 冒号和空格:键和值之间必须有一个空格。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇