ruamel.yaml库导出时意外换行及转义符异常问题求助
使用ruamel.yaml保留YAML格式的修复方案
针对你遇到的格式异常问题,通过调整ruamel.yaml的核心参数即可解决,以下是修改后的代码及对应问题的说明:
修改后的代码
import ruamel.yaml yaml = ruamel.yaml.YAML() yaml.preserve_quotes = True yaml.explicit_start = True yaml.indent(mapping=6, sequence=4, offset=2) yaml.width = 1000 # 禁用自动换行逻辑,避免长内容被拆分 yaml.unsafe = True # 允许解析非标准转义符,保留原始转义格式 data = {} with open("my.yaml", "r") as f: data = yaml.load(f) data["my::property::user::name"] = "me" with open("my.yaml", "w") as f: yaml.dump(data, f)
对应问题的解决说明
- 意外换行与长字符串拆行:
yaml.width = 1000将输出宽度设置为极大值,彻底禁用ruamel.yaml自动拆分长键、长值的逻辑,保持原单行格式。 - 转义符异常:
yaml.unsafe = True允许解析器保留原始的非标准转义字符(如\D、\pathname这类不属于YAML标准转义的内容),避免被错误处理为换行或额外转义符。 - 保留原有格式的核心设置:
preserve_quotes=True确保原引号格式不变,indent设置维持原有缩进规则,explicit_start=True保留YAML起始标记。
内容的提问来源于stack exchange,提问作者Giuliani Sanches
相关产品推荐
相关产品推荐

