跳转到主要内容

Python库,用于解析和创建TOML语言

项目描述

https://img.shields.io/pypi/v/toml https://travis-ci.org/uiri/toml.svg?branch=master https://img.shields.io/pypi/pyversions/toml.svg

一个用于解析和创建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 (22.3 kB 查看哈希值)

上传

构建分布

toml-0.10.2-py2.py3-none-any.whl (16.6 kB 查看哈希值)

上传 Python 2 Python 3

由以下支持