Python 在JsonSchema验证错误中包含键值
我有一个json文件和一个jsonSchema。现在我做了验证。它很好用。 在错误消息中,它显示如下错误:Python 在JsonSchema验证错误中包含键值,python,json,python-3.x,python-2.7,json-schema-validator,Python,Json,Python 3.x,Python 2.7,Json Schema Validator,我有一个json文件和一个jsonSchema。现在我做了验证。它很好用。 在错误消息中,它显示如下错误: ['id', 4180, 'name', 'amount'] 2.0 is greater than the maximum of 1 我还想打印发生错误的Id号,以便可以轻松地跟踪JSON文件中的错误 我尝试了以下代码: jsondata = json.loads(jsonInput.read()) jsonschema = json.loads(schemaInput.read()
['id', 4180, 'name', 'amount']
2.0 is greater than the maximum of 1
我还想打印发生错误的Id号,以便可以轻松地跟踪JSON文件中的错误
我尝试了以下代码:
jsondata = json.loads(jsonInput.read())
jsonschema = json.loads(schemaInput.read())
validator = jsonschema.Draft7Validator(jsonschema )
errors = sorted(validator.iter_errors(jsondata ),key=str) # get all validation errors
error_count=1;
for error in errors:
print(error)
如何才能做到这一点?您需要进一步检查收到的错误 以下是一个例子:
您需要进一步检查所得到的错误 以下是一个例子:
它给了我一张空名单。你能告诉我为什么吗?我怎么知道?您没有提供您的模式,您没有提供您的输入,您没有提供完整的代码。看,它给了我一张空名单。你能告诉我为什么吗?我怎么知道?您没有提供您的模式,您没有提供您的输入,您没有提供完整的代码。看见
for error in errors:
for suberror in sorted(error.context, key=lambda e: e.schema_path):
print(list(suberror.schema_path), suberror.message, sep=", ")