TOML
是一种用于配置文件的轻量级、易读的数据序列化格式。
由Tom Preston-Werner创建,旨在成为一种简单直观的配置文件语言,适用于任何编程语言环境。
TOML
支持多种数据类型,包括字符串、整数、浮点数、布尔值、日期时间、数组和嵌套表等等。
TOML
通常用于配置应用程序或软件的设置,例如配置数据库连接信息、网络参数、日志级别等。
在许多编程语言中,都有第三方库或原生支持,用于解析和生成TOML
格式的配置文件。
Python
从3.11
版本开始,原生支持TOML
的解析,不需要再安装第三方的库。
1. 基本类型
配置项的值在TOML
中也像在JSON
中一样,是可以有类型的。
它说支持的基本类型主要有布尔值,数值(整数,浮点数),字符串和日期等几种。
1.1. 布尔值
python
中的TOML
模块可以加载toml
格式的字符串,或者toml
文件的文件流。
# -*- coding: utf-8 -*-
import tomllib
# 加载toml文件
with open("./sample.toml", "rb") as f:
data = tomllib.load(f)
print("bool_var1 = ", data["bool_var1"])
print("bool_var2 = ", data["bool_var2"])
# 运行结果
bool_var1 = False
bool_var2 = True
toml
文件示例:sample.toml
bool_var1 = false
bool_var2 = true
1.2. 数值
数值类型分为整数和浮点数两种。
整型除了10进制,也可以用16进制,8进制和2进制。
# 10进制
int_var1 = 99
int_var2 = -17
int_var3 = 1_234_000
# 16进制,大小写都可以
hex_var1 = 0xDE
hex_var2 = 0xde
# 8进制
oct_var = 0o666
# 2进制
bin_var = 0b11010110
解析之后,会自动转换成10进制。
with open("./sample.toml", "rb") as f:
data = tomllib.load(f)
print("int_var1 = ", data["int_var1"])
print("int_var2 = ", data["int_var2"])
print("int_var3 = ", data["int_var3"])
print("hex_var1 = ", data["hex_var1"])
print("hex_var2 = ", data["hex_var2"])
print("oct_var = ", data["oct_var"])
print("bin_var = ", data["bin_var"])
# 运行结果
int_var1 = 99
int_var2 = -17
int_var3 = 1234000
hex_var1 = 222
hex_var2 = 222
oct_var = 438
bin_var = 214
浮点型的各