jsonchema的iter\u errors()的返回类型是什么?

2024-04-26 09:54:08 发布

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

我用下面的代码对照json模式文件验证json文件。为此,我使用jsonschema库,并使用下面的代码段(python2.7)。你知道吗

即使json解析通过了模式验证,流也会转到else块并在那里递增计数器,而不是转到if块。你知道吗

注意:我将一个大的json文件(它有一个对象数组)拆分成一个json文件,其中只有一个数组元素,然后再执行下面的代码。你知道吗

validate_schema = jsonschema.Draft7Validator(json.loads(schema_data))
            errors = validate_schema.iter_errors(json.loads(json_rec))
            if not errors:
                print 'no errors......................'
                valid_rec_ctr += 1
            else:
                invalid_rec_ctr += 1
                error_msg = ''
                issue_tag = "griefs_" + str(rec_ctr)
                record_tag = "record_"+ str(rec_ctr)
                grief[record_tag] = json_rec
                for error in sorted(errors, key=str):
                    # print error.message, "at ", error.path
                    error_msg = error_msg + str(error.message) + " at" + str(error.path) + '^^^'
                print '\r\n'
                grief[issue_tag] = error_msg

为什么即使验证成功也要创建error iterable对象?你知道吗


Tags: 文件代码jsonschematag模式msgerror