0Pricing
Python Academy · Aula

Codificação e decodificação de JSON

Use json.loads, json.dumps e json.load/dump para entrada e saída de JSON.

Codificação e decodificação de JSON é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Introdução

O módulo json do Python converte entre objetos Python e strings ou arquivos JSON por meio de funções simples e consistentes.

json.dumps()

json.dumps(obj) serializa um objeto Python em uma string JSON. indent=2 formata o resultado com indentação.
import json
d = {'name': 'Alice', 'age': 30, 'active': True}
print(json.dumps(d, indent=2))

json.loads()

json.loads(s) analisa uma string JSON e a transforma em um objeto Python. Objetos JSON tornam-se dicionários, e arrays tornam-se listas.
import json
s = '{"name": "Alice", "scores": [90, 85]}'
data = json.loads(s)
print(type(data), data['name'])

json.dump() para arquivo

json.dump(obj, file_object) serializa diretamente em um arquivo. Não é necessário capturar uma string primeiro.
import json, tempfile, os
tmp = tempfile.mktemp(suffix='.json')
with open(tmp, 'w') as f:
    json.dump({'x': 1}, f, indent=2)
print(open(tmp).read())
os.unlink(tmp)

json.load() de um arquivo

json.load(file_object) analisa JSON diretamente de um objeto de arquivo aberto.
import json, io
buf = io.StringIO('{"key": "value"}')
data = json.load(buf)
print(data)

Mapeamento de tipos JSON

JSON object→dict. array→list. string→str. number→int/float. true/false→True/False. null→None.
import json
s = '[1, "two", true, null, {"a": 3.14}]'
print(json.loads(s))

Tipos não serializáveis

datetime, set e bytes não são serializáveis em JSON. Forneça uma função default= ou crie uma subclasse de JSONEncoder.
import json
from datetime import datetime
def default(obj):
    if isinstance(obj, datetime):
        return obj.isoformat()
    raise TypeError(f'{type(obj)} not serializable')
print(json.dumps({'ts': datetime.now()}, default=default))

sort_keys e separators

sort_keys=True ordena as chaves do dicionário. separators=(',', ':') remove espaços em branco para gerar uma saída compacta.
import json
d = {'z': 3, 'a': 1, 'm': 2}
print(json.dumps(d, sort_keys=True, separators=(',', ':')))

Formatação legível

json.dumps(obj, indent=4, ensure_ascii=False) produz um JSON legível, preservando os caracteres Unicode.
import json
d = {'name': 'Mehmet', 'city': 'Istanbul'}
print(json.dumps(d, indent=4, ensure_ascii=False))

Erro de decodificação JSON

json.loads(invalid) gera json.JSONDecodeError. Sempre envolva a análise de entradas do usuário em try/except.
import json
try:
    json.loads('{bad json}')
except json.JSONDecodeError as e:
    print(f'Parse error: {e}')

Atualizando arquivos JSON

Leia → modifique → grave novamente: o padrão usual para atualizar um arquivo de configuração JSON.
import json, io
buf = io.StringIO('{"count": 5}')
data = json.load(buf)
data['count'] += 1
print(json.dumps(data))

Verificação rápida

Qual função analisa uma string JSON e a transforma em um objeto Python?

Recapitulação

json.dumps/loads para strings, json.dump/load para arquivos. Tipos: object→dict, array→list, null→None. Serialização personalizada por meio de uma função default=.

Continue

Continue assim! Passe para a próxima lição.

Perguntas Frequentes

A aula “Codificação e decodificação de JSON” é grátis?

Sim — o texto completo de “Codificação e decodificação de JSON” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Codificação e decodificação de JSON”?

Use json.loads, json.dumps e json.load/dump para entrada e saída de JSON. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Codificação e decodificação de JSON”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Codificação e decodificação de JSON
  2. Tratamento de estruturas JSON aninhadas
  3. Leitura de CSV com csv.reader
  4. Escrita de CSV com csv.DictWriter
← Voltar para Python Academy