Como usar o Pydantic para validação de dados em Python
Neste tutorial você vai aprender como usar o Pydantic, com exemplos práticos e linguagem acessível.
O Pydantic é uma biblioteca Python para validação de dados baseada em type hints. Você define uma classe que herda de BaseModel com os campos e seus tipos, e o Pydantic valida automaticamente os dados na criação do objeto, convertendo tipos quando possível e gerando erros claros quando os dados são inválidos. É muito usado com FastAPI e em APIs.
Aprenda a criar sistema mais confiáveis com esta biblioteca que ajuda a evitar erros comuns, converte tipos automaticamente e simplifica a integração com JSON. O Pydantic é uma ferramenta poderosa do Python que facilita a validação de dados, especialmente em projetos mais longos.
Continue lendo pra entender como ele funciona!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
O que é o Pydantic e para que serve?
O Pydantic é uma biblioteca Python que permite validar tipos de dados de um jeito mais fácil. Ele é muito usado em frameworks como FastAPI e LangChain, garantindo que os dados inseridos no programa sigam o formato esperado.
As principais funções do Pydantic são:
- Validação de tipos: Garante que os dados correspondam ao tipo definido (ex.: número, texto).
- Detecção de erros: Identifica problemas logo na criação dos dados, não durante a execução.
- Integração com JSON: Facilita a conversão de objetos Python para JSON e vice-versa.
Como instalar o Pydantic de forma simples?
Para começar, você precisa instalar o Pydantic. Abra o terminal e execute:
pip install pydantic
(Certifique-se de ter o Python instalado na versão 3.7 ou superior).
Depois que instalar o Pydantic pelo terminal, você já vai poder importar a biblioteca no seu código com import pydantic.
Como criar classes com validação usando o Pydantic?
O Pydantic usa o conceito de BaseModel para criar classes que validam dados automaticamente. Vamos criar uma classe para representar um usuário de um sistema de corretora, com nome, e-mail e investimento.
Dica: Se quiser entender classes, leia nosso artigo que ensina tudo sobre classes do zero!
Exemplo de código usando classes
from pydantic import BaseModel
class Usuario(BaseModel):
nome: str
email: str
investimentos: floatnome: str| Define que o campo deve ser uma string.email: str| Também uma string, mas pode ser validado como e-mail (ver adiante).investimentos: float| Um número que pode ter casas decimais.
Como criar e usar um objeto com Pydantic?
Depois de definir a classe, você pode criar um objeto e usá-lo como faria com um dicionário ou classe padrão.
(No artigo sobre classes linkado acima, também ensinamos o que são objetos!)
Exemplo de código
from pydantic import BaseModel
class Usuario(BaseModel):
nome: str
email: str
investimentos: float
# Criando um usuário
usuario = Usuario(nome="João", email="joao@email.com", investimentos=10000)
# Exibindo informações
print(usuario) # nome='João' email='joao@email.com' investimentos=10000.0
print(usuario.email) # joao@email.com
# Editando investimentos
usuario.investimentos += 1000
print(usuario.investimentos) # 11000.0O Pydantic não complica o uso dos dados, mas adiciona validação para evitar erros.
Como o Pydantic evita erros ocultos?
Sem o Pydantic, um erro comum é atribuir um tipo errado (ex.: texto em vez de número) a uma variável, o que só é percebido mais tarde, em uma operação como uma soma.
O Pydantic resolve isso de três formas:
| Funcionalidade | Benefício |
|---|---|
| Conversão automática | Transforma textos numéricos (ex.: "10000") em números automaticamente. |
| Validação na criação | Detecta erros de tipo logo ao criar o objeto, não durante a execução. |
| Mensagens claras | Indica a linha exata e o campo com erro, facilitando a correção. |
Por exemplo, se você tentar criar um usuário com um investimento inválido:
# Tentativa com erro
usuario = Usuario(nome="João", email="joao@email.com", investimentos="texto")O Pydantic retorna um erro de validação, apontando que investimentos deve ser um float, não um texto.
Como usar validações avançadas, como e-mails?
Agora vamos ver o que citamos na primeira seção.
Uma coisa muita útil do Pydantic é que ele oferece validadores específicos, como o EmailStr, para garantir que um campo siga o formato de e-mail.
Exemplo de código
from pydantic import BaseModel, EmailStr
class Usuario(BaseModel):
nome: str
email: EmailStr
investimentos: float
# Erro: e-mail inválido
usuario = Usuario(nome="João", email="joao", investimentos=10000)Se o e-mail não for válido (ex.: "joao" em vez de "joao@email.com"), o Pydantic retorna um erro de validação, indicando que o campo email não segue o formato esperado.
Como integrar o Pydantic com JSON?
O Pydantic simplifica a conversão de objetos para JSON, útil para APIs e comunicação entre sistemas.
Exemplo de código
from pydantic import BaseModel, EmailStr
class Usuario(BaseModel):
nome: str
email: EmailStr
investimentos: float
usuario = Usuario(nome="João", email="joao@email.com", investimentos=10000)
# Converter para dicionário
dicionario = usuario.model_dump()
print(dicionario) # {'nome': 'João', 'email': 'joao@email.com', 'investimentos': 10000.0}
# Converter para JSON
json_data = usuario.model_dump_json()
print(json_data) # {"nome":"João","email":"joao@email.com","investimentos":10000.0}- model_dump(): Converte o objeto em um dicionário Python.
- model_dump_json(): Gera uma string JSON formatada corretamente, pronta para uso em APIs.
Quando e por que usar o Pydantic no seu projeto?
O Pydantic é ideal para projetos mais longos e que precisam de muita precisão nos tipos. Com o que vimos aqui é possível aumentar muito a confiabilidade de APIs ou sistemas mais complexos.
Suas vantagens incluem:
- Evita erros em projetos grandes: Detecta problemas de tipo antes que causem falhas.
- Facilita manutenção: Mensagens de erro claras reduzem o tempo de depuração.
- Integração com frameworks: Usado por FastAPI e LangChain para validação de dados.
- Flexibilidade: Suporta validadores personalizados e integração com JSON.
Se você está começando, o Pydantic pode parecer algo a mais para se preocupar, mas a verdade é que em projetos maiores ele economiza tempo, evitando erros difíceis de rastrear manualmente.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.
Perguntas frequentes
1. O que é o Pydantic e para que serve?
É uma biblioteca Python de validação de dados que usa type hints. Você descreve a estrutura esperada em uma classe BaseModel, e o Pydantic valida e converte os dados automaticamente, garantindo que cheguem no formato certo. É muito usada em APIs e configurações.
2. Como instalar o Pydantic?
Instale com pip install pydantic. Depois, importe o BaseModel (from pydantic import BaseModel) e crie suas classes de modelo. Na versão 2, há também o pydantic-core, instalado junto, que torna a validação ainda mais rápida.
3. Como validar dados com o Pydantic?
Crie uma classe herdando de BaseModel com os campos e tipos (por exemplo, nome: str, idade: int) e instancie passando os dados. Se algo estiver fora do tipo esperado, o Pydantic gera um erro de validação detalhado; caso contrário, devolve o objeto pronto.
4. Pydantic converte os tipos automaticamente?
Sim, quando é seguro. Se um campo é int e você passa '21' (string), o Pydantic converte para 21. Quando a conversão não é possível, ele levanta um erro de validação, deixando claro qual campo está incorreto e por quê.








