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