JSON架构:输入格式不正确

2024-05-19 22:47:36 发布

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

我使用的是基于jsonschema的Tornado_JSON,我的模式定义有一个问题。{1}似乎在联机修复问题。True加大写T适用于python,并导致在线验证器(Schema is invalid JSON.)中的错误。有了true,在线验证器很高兴,示例json根据模式进行验证,但是我的python脚本不再启动(NameError: name 'true' is not defined)。这能解决吗?在

@schema.validate(
        """input_schema={
            'type': 'object',
            'properties': {
                        'DB': {
                            'type': 'number'
                        },
                        'values': {
                            'type': 'array',
                            'items': [
                                {
                                    'type': 'array',
                                    'items': [
                                        {
                                            'type': 'string'
                                        },
                                        {
                                            'type': [
                                                'number',
                                                'string',
                                                'boolean',
                                                'null'
                                            ]
                                        }
                                    ]
                                }
                            ],
                            'additionalItems': true
                        }
            }
        },
        input_example={
            'DB': 22,
            'values': [['INT', 44],['REAL', 33.33],['CHAR', 'b']]
        }"""
)

我根据您的评论更改了它(外部文件json.loads())。很 完美。非常感谢。


Tags: jsontruenumberinputdbstringisschema
2条回答

将模式放入三引号字符串或外部文件中,然后使用json.loads()对其进行解析。使用小写拼写。在

错误源于试图将内置的Python数据类型放入JSON模式。后者是用于检查类型一致性的模板语法,不应保存实际数据。相反,在input_schema下,您将希望将"additionalItems"定义为{ "type": "boolean" },然后将其添加到input_example中的测试JSON中,并在后面加上一个布尔值,以便进行测试。在

另外,我对Tornado_JSON不太熟悉,但将"additionalItems"放在"values"属性内,似乎不符合模式定义语言。把它提高一级。在

更具体地说,我认为你要做的应该是:

"values": {
    ...value schema definition...
}
"additionalItems": {
    "type": "boolean"
}

输入示例将变成:

^{pr2}$

相关问题 更多 >