将 Validationerror 的迭代合并到 JSON Schema 中的一个 Validationerror 的迭代中

Merge iterables of Validationerror into one single iterable of Validationerror in JSON Schema

jsonschema 验证中,我希望在一个 for 循环中打印几个 instances 的所有 Validationerror 以及几个相应的 schemas与用于一轮验证的 for 循环相反。我想做这样的事情:

validator = jsonschema.Draft4Validator(schema1)
errors1 = validator.iter_errors(instance1)
validator = jsonschema.Draft4Validator(schema2)
errors2 = validator.iter_errors(instance2)
for error in errors1 + errors2:
    print error.message

但是,我做不到 errors1 + errors2,因为它们是 generator 类型。有没有一种方法可以将所有错误添加到一个可迭代对象中,这样我就可以只使用一个 for 循环?任何帮助表示赞赏。谢谢。

这里有类似的问题How to join two generators in Python?

您必须使用 itertools.chain() 函数来加入生成器

for error in itertools.chain(errors1, errors2):
    print error.message