Quantcast
Channel: Blog | Object Partners
Viewing all articles
Browse latest Browse all 93

Introduction to Pydantic

$
0
0

I’ve been using the Pydantic library in my Python projects lately and it’s pretty great. At first glance, it seems very similar to Python 3’s built-in dataclass decorator but when you see it supports easy JSON serialization and deserialization with ease, you won’t go back. The real killer feature of Pydantic is data validation—you declare the types of properties in your class, optional or required, and even default values if you want. If you have a validation problem, you will get a very useful error.

Here is a simplistic example:

from pydantic import BaseModel

class Book(BaseModel):

   title: str
   author: str
   publisher: str
   year_published: int


book= Book(title="The Way Of Kings")

I get:

pydantic.error_wrappers.ValidationError: 3 validation errors for Book
author
  field required (type=value_error.missing)
publisher
  field required (type=value_error.missing)
year_published
  field required (type=value_error.missing)

if you use the wrong object type:

book= Book(title="The Way Of Kings", 
           author="Brandon Sanderson",
           year_published="forty-two", publisher="Tor")

I get:

pydantic.error_wrappers.ValidationError: 1 validation error for Book
year_published
  value is not a valid integer (type=type_error.integer)

While Pydantic does well with JSON, sometimes you need to go with something older—like CSV. Luckily a generic CSV serializer was easy to write.

So if you need some easy and powerful data validation and serialization in your Python project, you should give Pydantic a look.

The post Introduction to Pydantic first appeared on Object Partners.


Viewing all articles
Browse latest Browse all 93

Trending Articles