Python库,用于解析和创建TOML语言
项目描述
一个用于解析和创建TOML的Python库。
该模块通过了TOML测试套件。
另请参阅
安装
要安装PyPI上的最新版本,请运行
pip install toml
或者要安装最新开发版本,请运行
git clone https://github.com/uiri/toml.git cd toml python setup.py install
快速教程
toml.loads 接受包含标准TOML格式数据的字符串,并返回包含解析数据的字典。
>>> import toml
>>> toml_string = """
... # This is a TOML document.
...
... title = "TOML Example"
...
... [owner]
... name = "Tom Preston-Werner"
... dob = 1979-05-27T07:32:00-08:00 # First class dates
...
... [database]
... server = "192.168.1.1"
... ports = [ 8001, 8001, 8002 ]
... connection_max = 5000
... enabled = true
...
... [servers]
...
... # Indentation (tabs and/or spaces) is allowed but not required
... [servers.alpha]
... ip = "10.0.0.1"
... dc = "eqdc10"
...
... [servers.beta]
... ip = "10.0.0.2"
... dc = "eqdc10"
...
... [clients]
... data = [ ["gamma", "delta"], [1, 2] ]
...
... # Line breaks are OK when inside arrays
... hosts = [
... "alpha",
... "omega"
... ]
... """
>>> parsed_toml = toml.loads(toml_string)
toml.dumps 接受一个字典,并返回包含相应TOML格式数据的字符串。
>>> new_toml_string = toml.dumps(parsed_toml)
>>> print(new_toml_string)
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00Z
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002,]
connection_max = 5000
enabled = true
[clients]
data = [ [ "gamma", "delta",], [ 1, 2,],]
hosts = [ "alpha", "omega",]
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
toml.dump 接受一个字典和一个文件描述符,并返回包含相应TOML格式数据的字符串。
>>> with open('new_toml_file.toml', 'w') as f:
... new_toml_string = toml.dump(parsed_toml, f)
>>> print(new_toml_string)
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00Z
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002,]
connection_max = 5000
enabled = true
[clients]
data = [ [ "gamma", "delta",], [ 1, 2,],]
hosts = [ "alpha", "omega",]
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
有关更多功能,请查看下面的API参考。
注意
对于Numpy用户,默认情况下,数据类型 np.floatX 不会被toml转换为浮点数,而是将其编码为字符串。为了避免这种情况,在保存数据时指定 TomlNumpyEncoder。
>>> import toml
>>> import numpy as np
>>> a = np.arange(0, 10, dtype=np.double)
>>> output = {'a': a}
>>> toml.dumps(output)
'a = [ "0.0", "1.0", "2.0", "3.0", "4.0", "5.0", "6.0", "7.0", "8.0", "9.0",]\n'
>>> toml.dumps(output, encoder=toml.TomlNumpyEncoder())
'a = [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,]\n'
API参考
- toml.load(f, _dict=dict)
将文件或文件列表解析为TOML格式并返回字典。
- 参数:
f:文件的路径,文件路径列表(将被读取为单个对象)或文件描述符
_dict:要返回的字典对象的类型
- 返回:
包含解析的TOML数据的字典(或对象_dict)
- 抛出:
TypeError:当f是无效类型或包含无效类型的列表时
TomlDecodeError:在解码文件时出错
- toml.loads(s, _dict=dict)
将TOML格式的字符串解析为字典。
- 参数:
s:要解析的TOML格式的字符串
_dict:指定返回的TOML字典的类型
- 返回:
包含解析的TOML数据的字典(或对象_dict)
- 抛出:
TypeError:当传递非字符串对象时
TomlDecodeError:在解码TOML格式的字符串时出错
- toml.dump(o, f, encoder=None)
将字典写入包含TOML格式数据的文件。
- 参数:
o:要转换为TOML的对象
f:存储TOML格式输出的文件描述符
encoder:用于编码对象的TomlEncoder(或子类)实例。如果为None,则默认为TomlEncoder
- 返回:
包含与对象o对应的TOML格式数据的字符串
- 抛出:
TypeError:当传递非文件描述符时
- toml.dumps(o, encoder=None)
从输入对象创建TOML格式的字符串
- 参数:
o:要转换为TOML的对象
encoder:用于编码对象的TomlEncoder(或子类)实例。如果为None,则默认为TomlEncoder
- 返回:
包含与对象o对应的TOML格式数据的字符串
许可
本项目根据MIT开源许可证发布。查看LICENSE.txt获取更多信息。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
toml-0.10.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f |
|
MD5 | 59bce5d8d67e858735ec3f399ec90253 |
|
BLAKE2b-256 | beba1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c |