代码之家  ›  专栏  ›  技术社区  ›  msarahan

如何禁止使用ruamel.yaml自动引用字符串

  •  1
  • msarahan  · 技术社区  · 8 年前

    我正在使用ruamel.yaml为构建工具生成“配方”,它接受一个非标准的yaml超集。我得到了一些不受欢迎的输出,而我对如何禁用它的搜索已经干涸了。下面是一个例子:

    import ruamel.yaml as ryaml
    
    test = ryaml.comments.CommentedMap(requirements={'host': ['abc', 'def   # [something]']})
    print(ryaml.dump(test, Dumper=ryaml.RoundTripDumper,
                                                default_flow_style=False,
                                                default_style="",
                                                width=200))
    

    这会自动引用无效的内容yaml(老实说,这是非常正常的默认行为):

    requirements:
      host:
        - abc
        - 'def   # [something]'
    

    我真的需要它不要在非标准行周围添加那些单引号。我不希望Ruamel能够重新解析它,只是把它扔掉。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Anthon    8 年前

    # :

    'def _# [something]'

    clearly documented in the specification

    ruamel.yaml 不能 通过简单地在一个值中包含一个注释来做到这一点:将无法将其与包含字符空格+哈希的实际值区分开来)

    推荐文章