YAML文档分割器,具有返回文档、起始行号和可选数据的迭代器
项目描述
此软件包提供YAML文档分割器,允许您迭代UTF-8编码的文件中的YAML文档,并返回每个文档、起始行号以及可选的加载数据。
使用此方法比使用load_all()有优势,您可以跳过已知的无法加载的文档,或在使用前进行测试/转换。例如,R markdown文件具有YAML标题后跟非YAML主体(当然,如果R markdown中的标题后面跟着 --- | 而不是仅目录结束标记(---),那就更好了,这样您就可以使用任何兼容的YAML解析器来加载两者了)
您可以使用以下方式获取每个文档
from pathlib import Path
from ruamel.yaml.split import split
for doc, line_nr in split(Path('input.yaml')):
print(doc.decode('utf-8'), line_nr)
line_nr指示文档的起始行,并可用于错误偏移,例如解析文档时生成的错误。
您还可以提供一个YAML()实例来获取为您加载的文档
import ruamel.yaml
for doc, data, line_nr in split(Path('input.yaml'), yaml=ruamel.yaml.YAML()):
print(doc.decode('utf-8'), data, line_nr)
您提供的YAML()实例用于加载所有文档。
默认情况下,split() 在文档结束标记(...)之后的行结束符处分割,因此文档结束标记所在行的任何注释都是文档的一部分。通过从 ruamel.yaml.split 导入的一些常量,您可以将这些常量提供给 split() 函数的 cmnt 参数,从而影响文档之间注释的分割位置。 C_PRE 将此类注释添加到前一个文档,C_POST 添加到下一个文档。 C_SPLIT_ON_FIRST_BLANK 在第一个空白行后分割,并分配给两个文档。
from ruamel.yaml.split import C_SPLIT_ON_FIRST_BLANK
for doc, data, line_nr in split(Path('input.yaml'), cmnt=C_SPLIT_ON_FIRST_BLANK):
print(doc.decode('utf-8'), line_nr)
文档流末尾的注释全部附加到最后一个文档,与 cmnt 参数无关。
项目详情
关闭
ruamel.yaml.split-0.2.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4f43f4acd04115e56bdb3e980ccfd22ae97d4a2a3a6c15f324c1945de9071b78 |
|
MD5 | 3138d0568055c1fd7f8284dc2c7c4bbe |
|
BLAKE2b-256 | ef86f44ccd893d2cafe46bd43b42779c46221c14681bfc68f96d71bb3fa69a69 |
关闭
ruamel.yaml.split-0.2.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5e31b0ef8c5e63a19103cfc69637006ec48ad3e44b54f69645f510592625bd9a |
|
MD5 | 548d4fe1c72420169e9a1a1fcfb403d2 |
|
BLAKE2b-256 | 11a74fb76856405adee08a69ccfc22bc899eb065c39b856973172a554f9d83d5 |