YAML和TOML都支持多种数据类型,但它们在某些方面有所不同¹⁴。
**YAML**支持的数据类型包括¹:
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
- 字符串
- 布尔值
- 整数
- 浮点数
- Null
- 时间
- 日期
**TOML**支持的数据类型包括⁴:
- 字符串
- 整数
- 浮点数
- 日期时间
- 数组
- 表格以及数组表格
总的来说,YAML和TOML都支持大部分常见的数据类型,但YAML在某些方面(如对Null、时间和日期的支持)提供了更多的选项¹⁴。然而,具体选择哪种格式应根据你的具体需求和偏好来决定。😊
# 这是一个 TOML 文档
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00
[database]
enabled = true
ports = [ 8000, 8001, 8002 ]
data = [ ["delta", "phi"], [3.14] ]
temp_targets = { cpu = 79.5, case = 72.0 }
[servers]
[servers.alpha]
ip = "10.0.0.1"
role = "frontend"
[servers.beta]
ip = "10.0.0.2"
role = "backend"
import ruamel.yaml
# 创建一个 YAML 对象
yaml = ruamel.yaml.YAML()
# 从文件中读取 YAML 数据
with open('data.yaml', 'r') as f:
data = yaml.load(f)
# 打印数据
for employee in data['employees']:
print(f"Employee ID: {employee['id']}")
print(f"Name: {employee['name']}")
print(f"Title: {employee['title']}")
print(f"Skills: {', '.join(employee['skills'])}")
print(f"Manager: {employee['manager']}")
print()