【问题标题】:PyYaml include double quotes inside value of a YAML fieldPyYaml 在 YAML 字段的值内包含双引号
【发布时间】:2021-06-02 16:13:32
【问题描述】:

我有如下所示的 YAML 数据,无法更改:

...
my_field: "blah" -other_stuff
...

我正在尝试逐字解析,但 pyYaml 不喜欢它: 预期,但发现'' 在“”中,第 12 行,第 207 列:

听起来好像把双引号的结尾解释为字段的结尾,后面什么都没有了。

有没有办法在解析过程中“转义”那些双引号并用双引号保持完全相同的字符串?顺便说一句,我正在做一个简单的 yaml.load()。

【问题讨论】:

  • 我不是 YAML 专家,但我很确定这不是有效的 YAML,而且我不确定你为什么会对它无法解析感到惊讶。您是否期望值为"blah" -other_stuff
  • 同意它看起来不像有效的 YAML 语法似乎 python YAML 加载正确地标记了这些,因为它的容忍度较低。不幸的是,我们在其他平台/语言中有接受此类值的 yaml 加载程序,这就是它们目前存在的原因

标签: python python-3.x yaml pyyaml


【解决方案1】:

如果要在 YAML 字段中插入文字 " 字符,可以引用整个字段,然后转义 " 字符:

my_field: "\"blah\" -other_stuff"

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 2022-10-14
    • 2011-12-09
    • 2017-12-08
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    相关资源
    最近更新 更多