Salve salve Pythonista ![]()
A validação e modelagem de dados são aspectos importantes no desenvolvimento de qualquer aplicação em Python.
O Pydantic surge como uma ferramenta poderosa para lidar com isso de maneira eficiente.
Neste artigo, exploraremos o que é o Pydantic, como ele pode ajudar na validação automática de tipos, na manipulação de dados válidos e inválidos, e como ele facilita a serialização e desserialização de dados em JSON.
Com seu foco na simplicidade e robustez, o Pydantic pode ser um diferencial no seu projeto.
Vá Direto ao Assunto…
- O que é o Pydantic e por que utilizá-lo?
 - Instalação e configuração inicial
 - Introdução aos modelos básicos (BaseModel)
 - Validação automática de tipos com Pydantic
 - Trabalhando com dados válidos e inválidos
 - Serialização e desserialização de dados em JSON
 
O que é o Pydantic e por que utilizá-lo?
Pydantic é uma biblioteca de modelagem e validação de dados para Python.
Ao trabalhar com dados, é comum a necessidade de garantir que eles estejam no formato e tipo corretos.
Pydantic simplifica essa tarefa com uma sintaxe clara e intuitiva!
Seus principais benefícios incluem a validação automática de tipos, a capacidade de converter tipos complexos com facilidade e a possibilidade de gerar dados confiáveis de fontes não confiáveis, como entradas de usuário.
Quando usar o Pydantic?
Use o Pydantic quando precisar garantir que dados estejam consistentes e seguros, especialmente em APIs, configurações, ou qualquer situação em que entradas externas sejam processadas.
Instalação e configuração inicial
Para começar a usar o Pydantic, você precisa instalá-lo em seu ambiente Python. Isso pode ser feito facilmente com o gerenciador de pacotes pip:
1
 
pip install pydantic
 
 
Após a instalação, você pode importar suas funcionalidades em seu projeto e começar a aproveitar seus benefícios.
Ei, você aí! Quer se sentir realmente capaz ao desenvolver Aplicações Python? Então clique no link abaixo e dê o próximo passo agora mesmo!
Introdução aos modelos básicos (BaseModel)
O coração do Pydantic é a classe BaseModel, que serve como ponto de partida para definir a estrutura dos seus dados. Vamos começar criando um exemplo básico de modelo:
1
2
3
4
5
6
 
from pydantic import BaseModel
class Usuario(BaseModel):
    nome: str
    idade: int
    email: str
 
 
Explicação do código:
- 
Importação: Importamos a classe 
BaseModeldo Pydantic. - 
Definição de Classe: Criamos a classe 
Usuarioque herda deBaseModel. - 
Atributos do Modelo: Definimos os atributos 
nome,idadeeemail, especificando seus tipos. 
Ao definir os tipos de dados, garantimos que o Pydantic valide automaticamente as entradas, reduzindo erros e melhorando a confiabilidade da aplicação.
Validação automática de tipos com Pydantic
A magia do Pydantic reside na sua capacidade de validar automaticamente o tipo de dados.
Vamos testar isso criando uma instância de Usuario com dados corretos e incorretos:
1
2
3
4
5
6
7
 
usuario_valido = Usuario(nome="João", idade=30, email="[email protected]")
print(usuario_valido)
try:
    usuario_invalido = Usuario(nome="Maria", idade="trinta", email="[email protected]")
except ValueError as e:
    print(f"Erro de validação: {e}")
 
 
Explicação do código:
- 
Instância Válida: Criamos um 
usuario_validocom os tipos corretos de dados para cada atributo. - 
Instância Inválida: Tentamos criar um 
usuario_invalidocom um tipo de dado incorreto paraidade. - 
Captura de Erro: O Pydantic lança um 
ValueErrorao encontrar um tipo incorreto, que capturamos e imprimimos. 
A capacidade do Pydantic em lidar com erros automaticamente é uma de suas características mais poderosas, ajudando a manter a integridade dos dados em sua aplicação.
Trabalhando com dados válidos e inválidos
Quando trabalhamos com dados, é comum encontrar entradas inválidas. O Pydantic fornece ferramentas para facilitar a manipulação desses casos. Vamos ver como ele trata entradas válidas e inválidas.
Dados válidos
Com o Pydantic, você pode contar com a conversão automática de tipos quando possível. Veja como:
1
2
 
usuario = Usuario(nome="Ana", idade="25", email="[email protected]")
print(usuario)
 
 
E a saída será:
1
 
nome='Ana' idade=25 email='[email protected]'
 
 
Explicação do código:
- 
Conversão de Tipos: Embora 
idadeseja uma string, o Pydantic converte paraintquando possível. 
Dados inválidos
Quando a conversão automática falha, o Pydantic lança um erro. Vamos ilustrar isso:
1
2
3
4
 
try:
    usuario = Usuario(nome=123, idade=25.5, email=None)
except ValueError as e:
    print(f"Erro de validação: {e}")
 
 
E a saída será:
1
2
3
4
5
6
7
8
9
10
 
Erro de validação: 3 validation errors for Usuario
nome
  Input should be a valid string [type=string_type, input_value=123, input_type=int]
    For further information visit https://errors.pydantic.dev/2.10/v/string_type
idade
  Input should be a valid integer, got a number with a fractional part [type=int_from_float, input_value=25.5, input_type=float]
    For further information visit https://errors.pydantic.dev/2.10/v/int_from_float
email
  Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
    For further information visit https://errors.pydantic.dev/2.10/v/string_type
 
 
Explicação do código:
- Erro de Tipos: Passamos tipos errados que o Pydantic não pode converter automaticamente.
 - 
Exceção Capturada: Um 
ValueErroré lançado informando o erro de tipo. 
Antes de continuar… Está curtindo esse conteúdo? ![]()
Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?
            Serialização e desserialização de dados em JSON
Uma das funcionalidades mais práticas do Pydantic é a fácil conversão entre modelos e JSON, essencial para aplicações web.
Serialização
A partir de um modelo Pydantic, podemos facilmente serializá-lo em JSON:
1
2
3
 
usuario = Usuario(nome="Carlos", idade=40, email="[email protected]")
usuario_json = usuario.model_dump_json()
print(usuario_json)
 
 
E a saída será:
1
 
{"nome":"Carlos","idade":40,"email":"[email protected]"}
 
 
Explicação do código:
- 
Método JSON: Usamos o método 
model_dump_json()da instânciaUsuariopara serializá-la. - Formato JSON: A saída é uma string JSON representando o modelo.
 
Desserialização
Da mesma forma, podemos criar um modelo a partir de uma string JSON:
1
2
3
 
dados_json = '{"nome": "Luiza", "idade": 22, "email": "[email protected]"}'
usuario = Usuario.model_validate_json(dados_json)
print(usuario)
 
 
E a saída será:
1
 
nome='Luiza' idade=22 email='[email protected]'
 
 
Explicação do código:
- 
Método parse_raw: 
model_validate_json()desserializa a string JSON para uma instância deUsuario. - 
Objeto Python: 
usuarioagora é um objetoUsuariocom os dados do JSON. 
Conclusão
Neste artigo, exploramos o incrível potencial do Pydantic para a validação e modelagem de dados em Python.
Vimos como instalá-lo e configurá-lo em seu projeto, e aprendemos a criar modelos básicos usando BaseModel.
Além disso, destacamos as capacidades de validação automática de tipos, manipulação de dados válidos e inválidos, e a facilidade de serializar e desserializar dados em JSON.
Esperamos que este conteúdo tenha ajudado a entender como o Pydantic pode simplificar e tornar mais robusto o gerenciamento de dados em suas aplicações Python.
							
                    
                
			
			
					
							
							
							
		"Porque o Senhor dá a sabedoria, e da sua boca vem a inteligência e o entendimento" Pv 2:6