【发布时间】:2026-02-13 13:40:01
【问题描述】:
我现在正在寻找几天,试图找出为什么我的 yaml 解析器(使用 PyYaml)没有像原始状态那样保存 YAML。
YAML 中的原行是:
healthcheck:
test: ["CMD-SHELL", "[ x\"`curl -k --silent -w '%{http_code}' https://localhost:4433 | grep 401`\" = x\"\" ] && exit 1 || exit 0"]
interval: 30s
但新行(只是加载文件并再次保存):
healthcheck:
interval: 30s
test:
- CMD-SHELL
- '[ x"`curl -k --silent -w ''%{http_code}'' https://localhost:4433 | grep 401`"
= x"" ] && exit 1 || exit 0'
这里有两个问题: 1)“测试”值成为一个列表而不是 1 行键值对。 2)这里实际上有3个新行,
a) -CMD-SHELL
b)- '[ x"`curl -k --silent -w ''%{http_code}'' https://localhost:4433 | grep 401`"
c)= x"" ] && exit 1 || exit 0'
所以另一个问题是,为什么第三行从第二行中断? (如果我显示空白,你会看到在第二行的末尾它有 LF 然后开始第三行
【问题讨论】:
标签: python parsing yaml pyyaml