ruamel.yaml 转储前编辑文档
ruamel.yaml edit document before dump
我有一个包含此类文档的 YAML 文件
%YAML 1.2
---
!some_tag
name: xyz
constants:
state: abc
阅读文档后,在使用ruamel.yaml.YAML().dump 转储之前,我想删除这部分文档
%YAML 1.2
---
我的输出文件应该只有文档的这些部分
!some_tag
name: xyz
constants:
state: abc
如何做到这一点?
如果你有一个带有版本的显式标签 .version
属性
YAML()
实例已设置。您可以实例化一个新实例进行转储
或者将该属性设置为 None
:
import sys
import pathlib
import ruamel.yaml
inp = pathlib.Path('input.yaml')
yaml = ruamel.yaml.YAML()
data = yaml.load(inp)
print(f'>>> version info {yaml.version}\n')
yaml.version = None
yaml.dump(data, sys.stdout)
给出:
>>> version info (1, 2)
!some_tag
name: xyz
constants:
state: abc
我有一个包含此类文档的 YAML 文件
%YAML 1.2
---
!some_tag
name: xyz
constants:
state: abc
阅读文档后,在使用ruamel.yaml.YAML().dump 转储之前,我想删除这部分文档
%YAML 1.2
---
我的输出文件应该只有文档的这些部分
!some_tag
name: xyz
constants:
state: abc
如何做到这一点?
如果你有一个带有版本的显式标签 .version
属性
YAML()
实例已设置。您可以实例化一个新实例进行转储
或者将该属性设置为 None
:
import sys
import pathlib
import ruamel.yaml
inp = pathlib.Path('input.yaml')
yaml = ruamel.yaml.YAML()
data = yaml.load(inp)
print(f'>>> version info {yaml.version}\n')
yaml.version = None
yaml.dump(data, sys.stdout)
给出:
>>> version info (1, 2)
!some_tag
name: xyz
constants:
state: abc