You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从YAML文件中提取带原始格式的Markdown内容

YAML提取remark字段并保留原始格式的问题

我有多个YAML文件,其中remark字段包含Markdown格式内容,想要提取该字段并完全保留原始字符串格式。

示例YAML文件(test.yml)

remark: "iljoijhoijhoiho pojpojpoij ohouihoui hp[oipoi
oiiohoihjoijh [p[pik[ [oi[p

kughkughiupokjpoj uiohgiuoh poipojk kpoip 

ouiyioyh[pop[uouypoipoikoiuo

"

我写的代码

import yml
import pypandoc

content = yml.load('test.yml')

remark = content.get('remark', None)

text = pypandoc.convert_text(remark, 'rst', format='md')

print(text)

问题

  • 期望:输出和源文件中remark字段的格式完全一致
  • 实际:输出丢失了换行,还莫名多出了一段表格内容:
iljoijhoijhoiho pojpojpoij ohouihoui hp[oipoi oiiohoihjoijh [p[pik[ [oi[p
kughkughiupokjpoj uiohgiuoh poipojk kpoip
ouiyioyh[pop[uouypoipoikoiuo
| heading 1 | heading 3 | heading 2 | |------------|------------|------------| | string 1,1 | string 1,3 | string 1,2 | | string 2,1 | string 2,3 | string 2,2 | | string 3,1 | string 3,3 | string 3,2 | 

解决方法

你完全没必要用pypandoc做格式转换,而且Python里没有yml模块,应该用pyyaml来正确加载YAML并保留原始换行:

修正后的代码

import yaml

# 打开文件并加载,保留原始字符串格式
with open('test.yml', 'r', encoding='utf-8') as f:
    content = yaml.safe_load(f)

# 直接获取并打印原始remark内容
remark = content.get('remark', '')
print(remark)

关键说明

  1. 去掉格式转换:你要的是原始字符串,不是把Markdown转成rst,所以pypandoc.convert_text完全多余,反而会破坏格式
  2. 正确加载YAML:用pyyaml的safe_load方法,对于双引号包裹的YAML字符串,会自动保留原始的换行和空白格式
  3. 避免无关错误:你输出里的表格内容是格式转换引入的错误,去掉转换步骤后就会消失

内容的提问来源于stack exchange,提问作者roman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:42:50