Python 验证名为";的属性的json;“类型”;

Python 验证名为";的属性的json;“类型”;,python,jsonschema,Python,Jsonschema,我试图用以下格式断言json: {"type": "mystring", "data": "mystring2"} 通过使用此代码: 来自jsonschema导入验证的 模式={“类型”:“字符串”,“数据”:“字符串”} myjson={“类型”:“mystring”,“数据”:“mystring2”} 验证(myjson,模式) 我得到一个错误: jsonschema.exceptions.ValidationError: {'type': 'mystring', 'data': 'my

我试图用以下格式断言json:

{"type": "mystring", "data": "mystring2"}
通过使用此代码:

来自jsonschema导入验证的

模式={“类型”:“字符串”,“数据”:“字符串”}
myjson={“类型”:“mystring”,“数据”:“mystring2”}
验证(myjson,模式)
我得到一个错误:

jsonschema.exceptions.ValidationError: {'type': 'mystring', 'data': 'mystring2'} is not of type 'string'

Failed validating 'type' in schema:

    {'data': 'string', 'type': 'string'}

On instance:
    {'data': 'mystring2', 'type': 'mystring'}
似乎保留了“type”属性来断言文档的类型。 如果我为任何其他事情更改“type”属性(来自schema和myjson变量),它将正常工作


有没有办法使用jsonschema断言一个名为“type”的属性?

我制作了一个更简单的版本来说明这个问题。您的类型设置不正确

from jsonschema import validate

schema = {"data": {"type" : "string"}} # define your key then its type
myjson = {"data": "mystring"} # your key, and its value

validate(myjson, schema) # validate
使用您自己的数据

from jsonschema import validate

schema = { "data": {"type": "string"}}
myjson = {"type": "mystring", "data": "mystring2"}

validate(myjson, schema)
阅读文档并玩他们的例子总是一个好主意


对根对象进行架构对我来说很有效:

来自jsonschema导入验证的

模式={
“类型”:“对象”,
“属性”:{
'data':{'type':'string'},
'type':{'type':'string'}
}
}
myjson={'type':'mystring','data':'mystring2'}
验证(myjson,schema)#一切正常
现在让我们让它失败:

myjson={'type':42,'data':'mystring2'}
验证(myjson,模式)
验证架构['properties']['type']中的'type'失败:
{'type':'string'}
在实例['type']上:
42

谢谢您的回答,但不幸的是,我认为这并不能解决问题。这可以断言这个json:
{“data”:“mystring”}
。但我试图断言的json是:
{“type”:“mystring”,“data”:“mystring2”}
重新检查我的答案。您的指定不正确,您有
类型
,然后您的字符串`mystring
,它应该是
类型`
字符串
。然后根据config/schmea将数据传递给calidate。您的模式当前将mystring作为类型?我从来没有听说过mystring类型。但是字符串类型是肯定的。我们开始。。叶,按mystring键入cant。