首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用验证的json模式验证

使用验证的json模式验证
EN

Stack Overflow用户
提问于 2013-04-18 17:50:32
回答 1查看 378关注 0票数 0

使用JSON模式和valdictory作为解析器/验证器时,我得到了以下模式验证错误。该模式是使用jsonschema.net自动生成的(使用相同的JSON数据)

代码语言:javascript
复制
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

代码:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 17:55:06

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

如果只有data = {...}而不是data = json.dumps({...})会怎么样呢

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16079714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档