【问题标题】:json-schema validation using validictory使用 validictory 的 json 模式验证
【发布时间】:2013-04-18 09:50:31
【问题描述】:

我在使用 JSON 模式和 valditory 作为解析器/验证器时收到以下模式验证错误。架构已使用 jsonschema.net 自动生成(使用相同的 JSON 数据)

validictory.validator.FieldValidationError: Value '{"bp": [{"category": "bp", 
"created": "2013-03-08T09:14:48.148000", "value": 147.0, "day": "2013-03-11T00:00:00", 
 "value2": 43.0, "id": "dc049c0e-d19a-4e3e-93ea-66438a239712", "unit": "mmHg"}]}' 
 for field '_data' is not of type object

代码:

import json
import validictory

data = json.dumps({'bp': [{'category': 'bp',
         'created': '2013-03-08T09:14:48.148000',
         'day': '2013-03-11T00:00:00',
         'id': 'dc049c0e-d19a-4e3e-93ea-66438a239712',
         'unit': 'mmHg',
         'value': 147.0,
         'value2': 43.0}]})


schema = {
    "type":"object",
    "properties":{
        "bp": {
            "type":"array",
            "required":False,
            "items":
                {
                    "type":"object",
                    "required":False,
                    "properties":{
                        "category": {
                            "type":"string",
                            "default": "bp",
                            "required":False
                        },
                        "created": {
                            "type":"string",
                            "default": "2013-03-08T09:14:48.148000",
                            "required":False
                        },
                        "day": {
                            "type":"string",
                            "default": "2013-03-11T00:00:00",
                            "required":False
                        },
                        "id": {
                            "type":"string",
                            "default": "dc049c0e-d19a-4e3e-93ea-66438a239712",
                            "required":False
                        },
                        "unit": {
                            "type":"string",
                            "default": "mmHg",
                            "required":False
                        },
                        "value2": {
                            "type":"number",
                            "default":43,
                            "required":False
                        },
                        "value": {
                            "type":"number",
                            "default":147,
                            "required":False
                        }
                    }
                }


        }
    }
}

validictory.validate(data,schema)

【问题讨论】:

    标签: json validation jsonschema


    【解决方案1】:

    我不熟悉该库,但您似乎是在验证 JSON 文本,而不是数据本身 - 所以验证器正在查看一个字符串,而架构表明数据应该是一个对象。

    如果您刚刚拥有data = {...} 而不是data = json.dumps({...}),该怎么办?

    【讨论】:

      猜你喜欢
      • 2021-06-15
      • 2019-12-14
      • 2022-01-02
      • 1970-01-01
      • 2015-07-18
      • 2012-09-22
      • 2017-04-29
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多