Trabalhando com JSON em Python – Salvando e Lendo Dados
No Python, manipular JSON é muito prático graças ao módulo json, que já vem incluído na biblioteca padrão da linguagem. Neste artigo, você vai aprender:
O que é JSON e por que ele é tão usado.
Como converter dados de Python para JSON.
Como salvar JSON em arquivos.
Como ler JSON de arquivos.
Como manipular os dados carregados.
Exemplos práticos e dicas úteis.
🔹 O que é JSON?
JSON significa JavaScript Object Notation. Apesar do nome, ele não está restrito ao JavaScript. É um formato textual baseado em pares chave → valor e listas ordenadas.
Exemplo de um arquivo JSON:
{
"nome": "Ana",
"idade": 28,
"cursos": ["Python", "Data Science", "Flask"],
"ativo": true
}
Esse formato é amplamente utilizado em:
APIs (quase toda API moderna retorna dados em JSON).
Armazenamento leve de dados em arquivos.
🔹 Trabalhando com JSON no Python
Python possui o módulo json, que fornece funções simples para conversão:
json.dumps()→ Converte um objeto Python em uma string JSON.json.dump()→ Converte e salva diretamente em um arquivo.json.loads()→ Converte uma string JSON para objeto Python.json.load()→ Lê um arquivo JSON e converte para objeto Python.
🔹 Convertendo Python para JSON (Serialização)
Chamamos de serialização o processo de transformar um objeto Python em JSON.
Exemplo:
import json
# Objeto Python
pessoa = {
"nome": "Carlos",
"idade": 35,
"cursos": ["Python", "Django", "Machine Learning"],
"ativo": True
}
# Convertendo para string JSON
json_string = json.dumps(pessoa, indent=4, ensure_ascii=False)
print(json_string)
Saída:
{
"nome": "Carlos",
"idade": 35,
"cursos": [
"Python",
"Django",
"Machine Learning"
],
"ativo": true
}
📌 Dica:
O parâmetro
indentdeixa o JSON mais legível.ensure_ascii=Falsemantém acentos e caracteres especiais em português.
🔹 Salvando JSON em Arquivo
Para salvar diretamente em um arquivo .json, usamos json.dump().
import json
dados = {
"produto": "Notebook",
"preço": 3500.75,
"estoque": 12,
"disponível": True
}
with open("produto.json", "w", encoding="utf-8") as arquivo:
json.dump(dados, arquivo, indent=4, ensure_ascii=False)
print("Arquivo salvo com sucesso!")
Isso gera um arquivo chamado produto.json no mesmo diretório.
🔹 Lendo JSON de Arquivo
Para recuperar os dados, usamos json.load().
import json
with open("produto.json", "r", encoding="utf-8") as arquivo:
dados = json.load(arquivo)
print(dados)
print("Produto:", dados["produto"])
print("Preço:", dados["preço"])
Saída:
{'produto': 'Notebook', 'preço': 3500.75, 'estoque': 12, 'disponível': True}
Produto: Notebook
Preço: 3500.75
📌 Note que o JSON foi convertido automaticamente para um dicionário Python!
🔹 Convertendo String JSON para Python
Às vezes recebemos JSON como texto (ex: resposta de uma API). Nesse caso, usamos json.loads().
import json
json_texto = '{"nome": "Juliana", "idade": 25, "ativo": false}'
dados = json.loads(json_texto)
print(dados)
print(type(dados))
Saída:
{'nome': 'Juliana', 'idade': 25, 'ativo': False}
<class 'dict'>
🔹 Convertendo Python para String JSON
Para enviar dados via API ou salvar em banco de dados, usamos json.dumps().
import json
carro = {
"marca": "Toyota",
"modelo": "Corolla",
"ano": 2022,
"opcionais": ["Ar-condicionado", "Airbag", "ABS"]
}
json_texto = json.dumps(carro, indent=2, ensure_ascii=False)
print(json_texto)
🔹 Exemplo Prático: Agenda de Contatos em JSON
Vamos criar uma mini agenda que salva contatos em JSON.
import json
# Função para carregar os contatos de um arquivo JSON
def carregar_contatos():
try:
with open("contatos.json", "r", encoding="utf-8") as arquivo:
return json.load(arquivo)
except FileNotFoundError:
return []
# Função para salvar contatos no arquivo
def salvar_contatos(contatos):
with open("contatos.json", "w", encoding="utf-8") as arquivo:
json.dump(contatos, arquivo, indent=4, ensure_ascii=False)
# Adicionando um novo contato
contatos = carregar_contatos()
novo = {"nome": "Mariana", "telefone": "99999-8888", "email": "mariana@email.com"}
contatos.append(novo)
salvar_contatos(contatos)
print("Contato adicionado com sucesso!")
Esse código cria (ou atualiza) um arquivo contatos.json que pode armazenar todos os registros da agenda.
🔹 Dicas Importantes
Sempre use
encoding="utf-8"para evitar problemas com acentos.Se for lidar com grandes volumes de dados, considere compactar o JSON (
indent=None).Para trabalhar com APIs, o Python permite transformar facilmente respostas em JSON com
requests.get(...).json().
Conclusão
O JSON é indispensável no ecossistema Python, seja para armazenar informações localmente ou trocar dados com sistemas externos.
Com o módulo json, você consegue:
Converter objetos Python em JSON e vice-versa.
Salvar e carregar dados em arquivos.
Criar aplicações que interagem com APIs e persistem informações de forma organizada.

Comentários
Postar um comentário