【问题标题】:YAML/JSON required attribute is not working for object propertiesYAML/JSON 必需属性不适用于对象属性
【发布时间】:2018-08-02 10:10:08
【问题描述】:

我有一个 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"]*

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

【问题讨论】:

  • 能否请您正确格式化代码块中的 YAML?除非它们在代码块中,否则我无法分辨它们的外观。
  • 请立即查看。 @Relequestual
  • 好的,感谢更新。到目前为止你有什么 JSON Schema?根级别的mysql 不是有效的架构关键字。
  • 我想我看到了你的问题。对于您的 json 实例,根级别是一个对象,它有一个属性 mysql,它有一个对象的值...这是否有助于您了解您在这里错过了什么?
  • 嗯,实际上没有。如果您可以更具描述性,那将非常有帮助。已经谢谢了。 @Relequestual

标签: python yaml jsonschema


【解决方案1】:

您定义的 JSON Schema(在 YAML 中)在根级别有一个 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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多