Python 在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()

我有一个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())

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=", ")