ScannerError:在“config.yaml”中不允许映射值?

2024-04-28 04:45:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为所有项目配置配置一个yaml文件,但我无法读取/解析下面的文件

这是我的错误,我做错了什么

ScannerError: mapping values are not allowed here
  in "config.yaml", line 7, column 13

appName: test
logLevel: WARN


TESTER:
    ENVIRONMENT: staging
      CONFIG:
        DATABASE:
          HOST: 2123.3123.2112.12
          USERNAME: x
          PASSWORD: y
          DB: Q
        CLASSIFIER:
          IMG_WIDTH: 380
          IMG_HEIGHT: 380
          HOST: 0.0.0.0:3201

Tags: 文件项目inconfighostyamlimghere
1条回答
网友
1楼 · 发布于 2024-04-28 04:45:50

问题在于yaml的缩进ENVIRONMENT与下一行中的CONFIG具有不同的缩进

您可以使用任何在线验证器,如http://www.yamllint.comhttps://codebeautify.org/yaml-validator来验证yaml文件

这是有效的YAML:

appName: test
logLevel: WARN


TESTER:
    ENVIRONMENT: staging
    CONFIG:
        DATABASE:
            HOST: 2123.3123.2112.12
            USERNAME: x
            PASSWORD: y
            DB: Q
        CLASSIFIER:
            IMG_WIDTH: 380
            IMG_HEIGHT: 380
            HOST: 0.0.0.0:3201

更新:
如果要使用多个配置,则通常将映射列表与下面的name属性一起使用。
即使只有一个配置,给NAME属性命名也是一种很好的做法

appName: test
logLevel: WARN

TESTER:
  - NAME: staging
    ENVIRONMENT: staging
    CONFIG:
      DATABASE:
        HOST: 2123.3123.2112.12
        USERNAME: x
        PASSWORD: 'y'
        DB: Q
      CLASSIFIER:
        IMG_WIDTH: 380
        IMG_HEIGHT: 380
        HOST: '0.0.0.0:3201'
  - NAME: production
    ENVIRONMENT: production
    CONFIG:
      DATABASE:
        HOST: 2123.3123.2112.14
        USERNAME: xP
        PASSWORD: yP
        DB: Q
      CLASSIFIER:
        IMG_WIDTH: 380
        IMG_HEIGHT: 380
        HOST: '0.0.0.0:3201'

this YAML中,他同样在deploy下使用了两个映射

相关问题 更多 >