【问题标题】:Why does this simple YAML fail to parse or validate appropriately?为什么这个简单的 YAML 无法正确解析或验证?
【发布时间】:2015-12-18 20:26:16
【问题描述】:

这不会在几个不同的 YAML 验证器中进行验证。如果通过 PyYAML 读取,它也无法解析。这只是无效的 YAML 吗?

---
databases:
  - name: mydb
    migrations:
      - type: liquibase
        file: 1.xml
      - type: liquibase
        file: 2.xml

例如,YAMLlint 会产生以下错误:

(<unknown>): mapping values are not allowed in this context at line 6 column 13

【问题讨论】:

    标签: yaml lint pyyaml


    【解决方案1】:

    这非常烦人,与地图结构列表无关。不知何故,其中有一些不是 ASCII 的空白字符,PyYAML 和我尝试过的验证器都不能很好地处理这些。

    $ xxd foobar.txt 
    00000000: 2d2d 2d0a 6461 7461 6261 7365 733a 0a20  ---.databases:. 
    00000010: 202d 206e 616d 653a 206d 7964 620a e280   - name: mydb...
    00000020: 8220 e280 8220 6d69 6772 6174 696f 6e73  . ... migrations
    00000030: 3a0a e280 8220 e280 8220 e280 8220 2d20  :.... ... ... - 
    00000040: 7479 7065 3a20 6c69 7175 6962 6173 650a  type: liquibase.
    00000050: 2020 2020 2020 2020 6669 6c65 3a20 312e          file: 1.
    00000060: 786d 6c0a e280 8220 e280 8220 e280 8220  xml.... ... ... 
    00000070: 2d20 7479 7065 3a20 6c69 7175 6962 6173  - type: liquibas
    00000080: 650a 2020 2020 2020 2020 6669 6c65 3a20  e.        file: 
    00000090: 322e 786d 6c0a                           2.xml.
    

    看到那些e28082 了吗?他们是 En Space 字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-19
      • 2012-03-06
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多