目录

每天分享一个好用的Python库-pydantic

前言

Python中有许多好用、有意思的库,有一些可以大大提高开发效率,有的可以为我们解决很多棘手的问题,从今天开始我会每天给大家分享一个Python库。今天分享的是一个数据校验库—pydantic

pydantic

简介

pydantic 利用 Python 的类型注解(type hints)来做数据解析和校验,数据不对就抛出清晰的错误,特别适合做接口入参校验、配置文件解析。著名的 FastAPI 框架的数据校验就是基于 pydantic 的。

安装

  • 使用pip进行安装

    1
    
    $ pip install pydantic
    

简单使用

  • 定义模型并校验数据

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    from datetime import date
    from pydantic import BaseModel
    
    class Article(BaseModel):
        title: str
        views: int = 0
        published: date
    
    article = Article(title='一篇文章学会Git', views=100, published='2019-05-11')
    print(article.published)  # 2019-05-11,字符串被自动转成了 date 对象
    
  • 类型不对会报友好的错误

    1
    2
    3
    
    >>> Article(title='测试', views='很多', published='2019-05-11')
    ValidationError: 1 validation error for Article
    views -> value is not a valid integer (type=type_error.integer)
    

小结

做 Web 后台或者写 SDK 的时候,用 pydantic 把"数据长什么样"声明出来,剩下的校验、转换它全包了,代码会干净很多。