如何利用Python的Schema进行高效的数据验证?

2026-05-05 11:570阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计917个文字,预计阅读时间需要4分钟。

如何利用Python的Schema进行高效的数据验证?

Schema是什么?不管我们做什么应用,只要和用户输入打交道,就有一个原则——永远不要信任用户的输入。意味着我们要对用户输入进行严格的验证,Web开发时,一般输入数据都以JSON格式处理。

Schema是什么?

不管我们做什么应用,只要和用户输入打交道,就有一个原则--永远不要相信用户的输入数据。意味着我们要对用户输入进行严格的验证,web开发时一般输入数据都以JSON形式发送到后端API,API要对输入数据做验证。一般我都是加很多判断,各种if,导致代码很丑陋,能不能有一种方式比较优雅的验证用户数据呢?Schema就派上用场了。

Schema非常简单,也就几百行的代码,最核心的类就一个:Schema。

1. 给Schema类传入类型(int、str、float等)

例如:

from schema import Schema

Schema(int).validate(10)
10
Schema(int).validate('10')
SchemaUnexpectedTypeError: '10' should be instance of 'int'

可见Schema会去验证validate方法传入的对象是不是所指定的类型,是则返回传入的数据,否则抛出一个SchemaError的异常(SchemaUnexpectedTypeError是SchemaError的子类)。

阅读全文

本文共计917个文字,预计阅读时间需要4分钟。

如何利用Python的Schema进行高效的数据验证?

Schema是什么?不管我们做什么应用,只要和用户输入打交道,就有一个原则——永远不要信任用户的输入。意味着我们要对用户输入进行严格的验证,Web开发时,一般输入数据都以JSON格式处理。

Schema是什么?

不管我们做什么应用,只要和用户输入打交道,就有一个原则--永远不要相信用户的输入数据。意味着我们要对用户输入进行严格的验证,web开发时一般输入数据都以JSON形式发送到后端API,API要对输入数据做验证。一般我都是加很多判断,各种if,导致代码很丑陋,能不能有一种方式比较优雅的验证用户数据呢?Schema就派上用场了。

Schema非常简单,也就几百行的代码,最核心的类就一个:Schema。

1. 给Schema类传入类型(int、str、float等)

例如:

from schema import Schema

Schema(int).validate(10)
10
Schema(int).validate('10')
SchemaUnexpectedTypeError: '10' should be instance of 'int'

可见Schema会去验证validate方法传入的对象是不是所指定的类型,是则返回传入的数据,否则抛出一个SchemaError的异常(SchemaUnexpectedTypeError是SchemaError的子类)。

阅读全文