如何更正此YAML格式错误?

时间:2014-05-19 18:23:20

标签: yaml pyyaml

我一直在努力定义新的YAML文档,但在尝试处理文件时,我从yamllint收到以下错误:

>syntax error on line 3, col 10: ` suites: '

运行测试时PyCharm中出现以下错误:

  

ScannerError:此处不允许使用映射值     在&#34; <string>&#34;,第2行,第11栏:         name:testFirstNameLower

代码如下:

DataMart\Users: 
  name: testFirstNameLower
   suites:
     - suite: dataMart
     - suite: userDim
   dataset: 
     source:  etlUnitTest 
       table:  users

它看起来格式正确,但我不知道我做错了什么......

1 个答案:

答案 0 :(得分:1)

如果您的DataMart\Users应包含一系列用户,每个用户都有一个name,一系列suites和一个dataset,那么您只是做一些太多的缩进,并没有将每个用户作为一个系列处理。 This online parser通常是我在处理yaml时使用的。)

请改为尝试:

DataMart\Users: 
  - name: testFirstNameLower
    suites:
      - suite: dataMart
      - suite: userDim
    dataset:
      source: etlUnitTest 
      table: users

...对应于以下json:

{
  "DataMart\\Users": [
    {
      "name": "testFirstNameLower", 
      "suites": [
        {
          "suite": "dataMart"
        }, 
        {
          "suite": "userDim"
        }
      ], 
      "dataset": {
        "source": "etlUnitTest", 
        "table": "users"
      }
    }
  ]
}

以下是添加了第二个示例用户的yaml:

DataMart\Users: 
  - name: testFirstNameLower
    suites:
      - suite: dataMart
      - suite: userDim
    dataset:
      source: etlUnitTest 
      table: users

  - name: secondname
    suites:
      - suite: secondDataMart
      - suite: secondUserDim
    dataset:
      source: secondEtlUnitTest 
      table: secondUsers