有哪些方法可以在Python中一次性捕获、记录和报告多个数据验证错误?
我正在使用Python 3构建一个应用程序,首先验证输入数据,然后处理它。第一步报告错误是程序预期功能的一部分,因此我不希望我的验证器在遇到第一个异常时就放弃。特别是,这些数据是表格形式的,我希望能够针对每行未经验证的表格返回而不是引发异常。
一篇几年前的论坛讨论仔细探讨了多种解决方案,包括以下看起来最为简洁的方法:
errors = []
for item in data:
try:
process(item)
except ValidationError as e:
errors.append(e)
if errors:
raise MultipleValidationErrors(errors)
在 MultipleValidationErrors
类中,应该有一个适当的 __str__
方法,以列出其中所有 ValidationErrors
的有用信息。
其他人建议使用 traceback
模块,但由于我想要捕获的异常是数据验证错误而不是程序错误,所以那似乎不太合适。可能涉及到 logging
模块是合适的。