如何用ruamel.yaml将Python对象导出为单行YAML字符串?
解决ruamel.yaml导出单行无换行/无'...'的问题
可以通过调整safe_dump的两个参数来实现需求,无需手动处理字符串:
- 移除末尾换行符:设置
line_break='',覆盖默认的换行符输出逻辑 - 移除标量导出时的'...':设置
explicit_end=False,关闭文档结束标记的自动添加
示例代码
导出列表/字典对象
import ruamel.yaml as yaml result = yaml.safe_dump([1, None], default_flow_style=None, line_break='') print(repr(result)) # 输出: '[1, null]'
导出标量对象(如None)
import ruamel.yaml as yaml result = yaml.safe_dump(None, default_flow_style=None, explicit_end=False, line_break='') print(repr(result)) # 输出: 'null'
原理说明
line_break参数控制输出时的换行符,设为空字符串即可避免自动追加换行explicit_end参数控制是否添加YAML文档结束标记...,关闭后导出标量时不会额外生成该标记
内容的提问来源于stack exchange,提问作者WodkaRHR
相关产品推荐
相关产品推荐

