YAML / JSON必需属性不适用于对象属性

时间:2018-08-02 10:10:09

标签: python yaml jsonschema

我有一个yml文件,如下所示:

mysql:
  db_pswd: "abcd"
  db_name: "pqrs"     

我正尝试使用python中的jsonschema库针对以下架构验证此配置:

mysql:
  type: object
  properties:
    db_pswd:
      type: string
    db_name:
      type: string
  required: ["db_pswd", "db_name"]

必填:[“ db_pswd”] *

出于测试目的,当我从配置文件中删除所需的属性时,验证未显示错误。

1 个答案:

答案 0 :(得分:1)

您已定义(在YAML中)的JSON模式在根级别具有密钥mysql

您需要定义一个对象,该对象的属性为mysql。您的“ JSON实例”(或yaml实例/文件)中有两层属性。

要实现这一目标,您需要一个类似于以下内容的架构...

type: object
properties:
    mysql:
    type: object
    properties:
      db_pswd:
        type: string
      db_name:
        type: string
    required: 
      - "db_pswd"
      - "db_name"
required: 
  - "mysql"