为何YAML中"\n"解析为空格、"\n\n"解析为换行?
YAML中"\n"解析为空格、"\n\n"解析为单个换行的原因
这是YAML规范里双引号标量的折叠换行规则导致的:
- 双引号字符串里的单个
\n会被视为“折叠换行”,解析时替换为空格,目的是支持把多行文本逻辑上合并成单行展示 - 当出现连续两个
\n时,第一个\n会触发换行保留,第二个\n作为折叠终止的标记,最终解析结果为单个换行符
复现代码
import yaml # 单个换行被解析为空格 yaml_txt = """value: "\n" """ x = yaml.load(yaml_txt, Loader=yaml.SafeLoader) print(repr(x["value"])) # 输出: ' ' # 两个换行被解析为单个换行符 yaml_txt = """value: "\n\n" """ x = yaml.load(yaml_txt, Loader=yaml.SafeLoader) print(repr(x["value"])) # 输出: '\n'
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

