跳转到主要内容

一个小型的TOML编写器

项目描述

Build Status codecov.io PyPI version

Tomli-W

一个小型的TOML编写器

目录 mdformat-toc生成

简介

Tomli-W是一个用于写入TOML的Python库。它是只读解析器Tomli的写入对应物,Tomli是一个只读TOML解析器。Tomli-W与TOML v1.0.0完全兼容。

安装

pip install tomli-w

使用

写入字符串

import tomli_w

doc = {"table": {"nested": {}, "val3": 3}, "val2": 2, "val1": 1}
expected_toml = """\
val2 = 2
val1 = 1

[table]
val3 = 3

[table.nested]
"""
assert tomli_w.dumps(doc) == expected_toml

写入文件

import tomli_w

doc = {"one": 1, "two": 2, "pi": 3}
with open("path_to_file/conf.toml", "wb") as f:
    tomli_w.dump(doc, f)

常见问题解答

Tomli-W是否会排序文档?

不会,但它会尊重输入数据的排序顺序,因此可以在调用tomli_w.dumps之前递归地对字典的内容进行排序。

Tomli-W支持写入带注释或自定义空白符的文档吗?

不支持。

为什么Tomli-W在字符串值包含换行符时不会写入多行字符串?

选择此默认值是为了实现无损耗的解析/写入往返。

TOML 字符串可以包含换行符,其中字节必须精确,例如:

s = "here's a newline\r\n"

TOML 字符串还可以包含换行符,其中字节表示并不重要,例如:

s = """here's a newline
"""

将前一个示例转换为后一个示例的解析/写入往返过程不会保留原始换行字节序列。这就是为什么 Tomli-W 避免写入多行字符串。

为不需要保留换行字节的用户提供关键字参数

import tomli_w

doc = {"s": "here's a newline\r\n"}
expected_toml = '''\
s = """
here's a newline
"""
'''
assert tomli_w.dumps(doc, multiline_strings=True) == expected_toml

Tomli-W 的输出是否保证是有效的 TOML?

不是。如果您的输入数据可能有问题并且您需要输出验证,请使用 tomli.loads 一次解析输出字符串。如果解析成功(不会引发 tomli.TOMLDecodeError),则该字符串是有效的 TOML。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

tomli_w-1.0.0.tar.gz (6.5 kB 查看哈希值)

上传

构建分布

tomli_w-1.0.0-py3-none-any.whl (6.0 kB 查看哈希值)

上传 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面